authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-02-25 12:54:55+01:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2025-02-25 12:54:55+01:00
logbedf806672d9e00203f9942c62887b271d12eb7f
tree1cf88fb0adbe169c3816eec80a632647326a18f5
parent37706cc1d98025c5ebff52d35cb6929ea1562dd7
parent51b44be9ccc216dd06ab1399b05a36a9771f13fe
signaturebadge-check Signed by PGP key B5690EEEBB952194

Merge pull request #22999 from alexrp/mingw-update


351 files changed, 9841 insertions(+), 6673 deletions(-)

lib/libc/include/any-windows-any/_mingw.h+13-9
...@@ -237,6 +237,10 @@ limitations in handling dllimport attribute. */...@@ -237,6 +237,10 @@ limitations in handling dllimport attribute. */
237# endif237# endif
238#endif238#endif
239239
240#if !defined(__CRTDLL__) && __MSVCRT_VERSION__ == 0x00
241#define __CRTDLL__
242#endif
243
240#if !defined(_UCRT) && ((__MSVCRT_VERSION__ >= 0x1400) || (__MSVCRT_VERSION__ >= 0xE00 && __MSVCRT_VERSION__ < 0x1000))244#if !defined(_UCRT) && ((__MSVCRT_VERSION__ >= 0x1400) || (__MSVCRT_VERSION__ >= 0xE00 && __MSVCRT_VERSION__ < 0x1000))
241/* Allow both 0x1400 and 0xE00 to identify UCRT */245/* Allow both 0x1400 and 0xE00 to identify UCRT */
242#define _UCRT246#define _UCRT
...@@ -594,12 +598,12 @@ extern "C" {...@@ -594,12 +598,12 @@ extern "C" {
594void __cdecl __debugbreak(void);598void __cdecl __debugbreak(void);
595__MINGW_INTRIN_INLINE void __cdecl __debugbreak(void)599__MINGW_INTRIN_INLINE void __cdecl __debugbreak(void)
596{600{
597#if defined(__i386__) || defined(__x86_64__)601#if defined(__aarch64__) || defined(__arm64ec__)
602 __asm__ __volatile__("brk #0xf000");
603#elif defined(__i386__) || defined(__x86_64__)
598 __asm__ __volatile__("int {$}3":);604 __asm__ __volatile__("int {$}3":);
599#elif defined(__arm__)605#elif defined(__arm__)
600 __asm__ __volatile__("udf #0xfe");606 __asm__ __volatile__("udf #0xfe");
601#elif defined(__aarch64__)
602 __asm__ __volatile__("brk #0xf000");
603#else607#else
604 __asm__ __volatile__("unimplemented");608 __asm__ __volatile__("unimplemented");
605#endif609#endif
...@@ -615,14 +619,14 @@ __MINGW_INTRIN_INLINE void __cdecl __debugbreak(void)...@@ -615,14 +619,14 @@ __MINGW_INTRIN_INLINE void __cdecl __debugbreak(void)
615void __cdecl __MINGW_ATTRIB_NORETURN __fastfail(unsigned int code);619void __cdecl __MINGW_ATTRIB_NORETURN __fastfail(unsigned int code);
616__MINGW_INTRIN_INLINE void __cdecl __MINGW_ATTRIB_NORETURN __fastfail(unsigned int code)620__MINGW_INTRIN_INLINE void __cdecl __MINGW_ATTRIB_NORETURN __fastfail(unsigned int code)
617{621{
618#if defined(__i386__) || defined(__x86_64__)622#if defined(__aarch64__) || defined(__arm64ec__)
623 register unsigned int w0 __asm__("w0") = code;
624 __asm__ __volatile__("brk #0xf003"::"r"(w0));
625#elif defined(__i386__) || defined(__x86_64__)
619 __asm__ __volatile__("int {$}0x29"::"c"(code));626 __asm__ __volatile__("int {$}0x29"::"c"(code));
620#elif defined(__arm__)627#elif defined(__arm__)
621 register unsigned int r0 __asm__("r0") = code;628 register unsigned int r0 __asm__("r0") = code;
622 __asm__ __volatile__("udf #0xfb"::"r"(r0));629 __asm__ __volatile__("udf #0xfb"::"r"(r0));
623#elif defined(__aarch64__)
624 register unsigned int w0 __asm__("w0") = code;
625 __asm__ __volatile__("brk #0xf003"::"r"(w0));
626#else630#else
627 __asm__ __volatile__("unimplemented");631 __asm__ __volatile__("unimplemented");
628#endif632#endif
...@@ -636,13 +640,13 @@ __MINGW_INTRIN_INLINE void __cdecl __MINGW_ATTRIB_NORETURN __fastfail(unsigned i...@@ -636,13 +640,13 @@ __MINGW_INTRIN_INLINE void __cdecl __MINGW_ATTRIB_NORETURN __fastfail(unsigned i
636#define __MINGW_PREFETCH_IMPL 1640#define __MINGW_PREFETCH_IMPL 1
637#endif641#endif
638#if __MINGW_PREFETCH_IMPL == 1642#if __MINGW_PREFETCH_IMPL == 1
639#if defined(__arm__) || defined(__aarch64__)643#if defined(__arm__) || defined(__aarch64__) || defined(__arm64ec__)
640void __cdecl __prefetch(const void *addr);644void __cdecl __prefetch(const void *addr);
641__MINGW_INTRIN_INLINE void __cdecl __prefetch(const void *addr)645__MINGW_INTRIN_INLINE void __cdecl __prefetch(const void *addr)
642{646{
643#if defined(__arm__)647#if defined(__arm__)
644 __asm__ __volatile__("pld [%0]"::"r"(addr));648 __asm__ __volatile__("pld [%0]"::"r"(addr));
645#elif defined(__aarch64__)649#elif defined(__aarch64__) || defined(__arm64ec__)
646 __asm__ __volatile__("prfm pldl1keep, [%0]"::"r"(addr));650 __asm__ __volatile__("prfm pldl1keep, [%0]"::"r"(addr));
647#endif651#endif
648}652}
lib/libc/include/any-windows-any/_mingw_mac.h+16-6
...@@ -7,6 +7,9 @@...@@ -7,6 +7,9 @@
7#ifndef _INC_CRTDEFS_MACRO7#ifndef _INC_CRTDEFS_MACRO
8#define _INC_CRTDEFS_MACRO8#define _INC_CRTDEFS_MACRO
99
10#define __MINGW64_PASTE2(x, y) x ## y
11#define __MINGW64_PASTE(x, y) __MINGW64_PASTE2(x, y)
12
10#define __STRINGIFY(x) #x13#define __STRINGIFY(x) #x
11#define __MINGW64_STRINGIFY(x) \14#define __MINGW64_STRINGIFY(x) \
12 __STRINGIFY(x)15 __STRINGIFY(x)
...@@ -88,6 +91,13 @@...@@ -88,6 +91,13 @@
88# endif91# endif
89#endif92#endif
9093
94#if defined(__arm64ec__) && !defined(_M_ARM64EC)
95# define _M_ARM64EC 1
96# ifndef _ARM64EC_
97# define _ARM64EC_ 1
98# endif
99#endif
100
91#ifndef _X86_101#ifndef _X86_
92 /* MS does not prefix symbols by underscores for 64-bit. */102 /* MS does not prefix symbols by underscores for 64-bit. */
93# ifndef __MINGW_USE_UNDERSCORE_PREFIX103# ifndef __MINGW_USE_UNDERSCORE_PREFIX
...@@ -116,14 +126,14 @@...@@ -116,14 +126,14 @@
116#endif /* ifndef _X86_ */126#endif /* ifndef _X86_ */
117127
118#if __MINGW_USE_UNDERSCORE_PREFIX == 0128#if __MINGW_USE_UNDERSCORE_PREFIX == 0
119# define __MINGW_IMP_SYMBOL(sym) __imp_##sym129# define __MINGW_IMP_SYMBOL(sym) __MINGW64_PASTE(__imp_,sym)
120# define __MINGW_IMP_LSYMBOL(sym) __imp_##sym130# define __MINGW_IMP_LSYMBOL(sym) __MINGW64_PASTE(__imp_,sym)
121# define __MINGW_USYMBOL(sym) sym131# define __MINGW_USYMBOL(sym) sym
122# define __MINGW_LSYMBOL(sym) _##sym132# define __MINGW_LSYMBOL(sym) __MINGW64_PASTE(_,sym)
123#else /* ! if __MINGW_USE_UNDERSCORE_PREFIX == 0 */133#else /* ! if __MINGW_USE_UNDERSCORE_PREFIX == 0 */
124# define __MINGW_IMP_SYMBOL(sym) _imp__##sym134# define __MINGW_IMP_SYMBOL(sym) __MINGW64_PASTE(_imp__,sym)
125# define __MINGW_IMP_LSYMBOL(sym) __imp__##sym135# define __MINGW_IMP_LSYMBOL(sym) __MINGW64_PASTE(__imp__,sym)
126# define __MINGW_USYMBOL(sym) _##sym136# define __MINGW_USYMBOL(sym) __MINGW64_PASTE(_,sym)
127# define __MINGW_LSYMBOL(sym) sym137# define __MINGW_LSYMBOL(sym) sym
128#endif /* if __MINGW_USE_UNDERSCORE_PREFIX == 0 */138#endif /* if __MINGW_USE_UNDERSCORE_PREFIX == 0 */
129139
lib/libc/include/any-windows-any/activation.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/activation.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/activation.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/activaut.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/activaut.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/activaut.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/activdbg.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/activdbg.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/activdbg.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/activdbg100.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/activdbg100.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/activdbg100.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/activprof.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/activprof.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/activprof.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/activscp.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/activscp.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/activscp.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/adhoc.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/adhoc.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/adhoc.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/alg.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/alg.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/alg.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/amstream.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/amstream.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/amstream.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/amvideo.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/amvideo.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/amvideo.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/asyncinfo.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/asyncinfo.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/asyncinfo.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/audioclient.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/audioclient.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/audioclient.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/audioendpoints.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/audioendpoints.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/audioendpoints.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/audiopolicy.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/audiopolicy.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/audiopolicy.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/austream.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/austream.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/austream.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/bdaiface.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/bdaiface.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/bdaiface.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/bits.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/bits.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/bits.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/bits1_5.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/bits1_5.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/bits1_5.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/bits2_0.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/bits2_0.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/bits2_0.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/bits2_5.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/bits2_5.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/bits2_5.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/bits3_0.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/bits3_0.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/bits3_0.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/bits5_0.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/bits5_0.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/bits5_0.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/comadmin.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/comadmin.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/comadmin.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/combaseapi.h+11
...@@ -354,6 +354,17 @@ WINOLEAPI CoGetTreatAsClass (REFCLSID clsidOld, LPCLSID pClsidNew);...@@ -354,6 +354,17 @@ WINOLEAPI CoGetTreatAsClass (REFCLSID clsidOld, LPCLSID pClsidNew);
354WINOLEAPI CoInvalidateRemoteMachineBindings (LPOLESTR pszMachineName);354WINOLEAPI CoInvalidateRemoteMachineBindings (LPOLESTR pszMachineName);
355#endif355#endif
356356
357#if (NTDDI_VERSION >= NTDDI_WINBLUE)
358#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
359enum AgileReferenceOptions {
360 AGILEREFERENCE_DEFAULT = 0,
361 AGILEREFERENCE_DELAYEDMARSHAL = 1
362};
363
364WINOLEAPI RoGetAgileReference(enum AgileReferenceOptions options, REFIID riid, IUnknown *pUnk, IAgileReference **ppAgileReference);
365#endif
366#endif
367
357#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)368#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
358typedef HRESULT (STDAPICALLTYPE *LPFNGETCLASSOBJECT) (REFCLSID, REFIID, LPVOID *);369typedef HRESULT (STDAPICALLTYPE *LPFNGETCLASSOBJECT) (REFCLSID, REFIID, LPVOID *);
359typedef HRESULT (STDAPICALLTYPE *LPFNCANUNLOADNOW) (void);370typedef HRESULT (STDAPICALLTYPE *LPFNCANUNLOADNOW) (void);
lib/libc/include/any-windows-any/comcat.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/comcat.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/comcat.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/commoncontrols.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/commoncontrols.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/commoncontrols.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/consoleapi.h created+139
...@@ -0,0 +1,139 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#ifndef _APISETCONSOLE_
8#define _APISETCONSOLE_
9
10#include <_mingw_unicode.h>
11
12#include <apiset.h>
13#include <apisetcconv.h>
14#include <minwinbase.h>
15#include <minwindef.h>
16
17#include <wincontypes.h>
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
24
25WINBASEAPI WINBOOL WINAPI AllocConsole(void);
26
27#if (NTDDI_VERSION >= NTDDI_WIN11_GE)
28
29typedef enum ALLOC_CONSOLE_MODE {
30 ALLOC_CONSOLE_MODE_DEFAULT = 0,
31 ALLOC_CONSOLE_MODE_NEW_WINDOW = 1,
32 ALLOC_CONSOLE_MODE_NO_WINDOW = 2
33} ALLOC_CONSOLE_MODE;
34
35typedef struct ALLOC_CONSOLE_OPTIONS {
36 ALLOC_CONSOLE_MODE mode;
37 WINBOOL useShowWindow;
38 WORD showWindow;
39} ALLOC_CONSOLE_OPTIONS, *PALLOC_CONSOLE_OPTIONS;
40
41typedef enum ALLOC_CONSOLE_RESULT {
42 ALLOC_CONSOLE_RESULT_NO_CONSOLE = 0,
43 ALLOC_CONSOLE_RESULT_NEW_CONSOLE = 1,
44 ALLOC_CONSOLE_RESULT_EXISTING_CONSOLE = 2
45} ALLOC_CONSOLE_RESULT, *PALLOC_CONSOLE_RESULT;
46
47WINBASEAPI HRESULT WINAPI AllocConsoleWithOptions(PALLOC_CONSOLE_OPTIONS options, PALLOC_CONSOLE_RESULT result);
48
49#endif /* NTDDI_VERSION >= NTDDI_WIN11_GE */
50
51WINBASEAPI WINBOOL WINAPI FreeConsole(void);
52
53#if (_WIN32_WINNT >= 0x0500)
54
55WINBASEAPI WINBOOL WINAPI AttachConsole(DWORD process_id);
56
57#define ATTACH_PARENT_PROCESS ((DWORD)-1)
58
59#endif /* _WIN32_WINNT >= 0x0500 */
60
61WINBASEAPI UINT WINAPI GetConsoleCP(void);
62WINBASEAPI UINT WINAPI GetConsoleOutputCP(void);
63
64#define ENABLE_PROCESSED_INPUT 0x0001
65#define ENABLE_LINE_INPUT 0x0002
66#define ENABLE_ECHO_INPUT 0x0004
67#define ENABLE_WINDOW_INPUT 0x0008
68#define ENABLE_MOUSE_INPUT 0x0010
69#define ENABLE_INSERT_MODE 0x0020
70#define ENABLE_QUICK_EDIT_MODE 0x0040
71#define ENABLE_EXTENDED_FLAGS 0x0080
72#define ENABLE_AUTO_POSITION 0x0100
73#define ENABLE_VIRTUAL_TERMINAL_INPUT 0x0200
74
75#define ENABLE_PROCESSED_OUTPUT 0x0001
76#define ENABLE_WRAP_AT_EOL_OUTPUT 0x0002
77#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
78#define DISABLE_NEWLINE_AUTO_RETURN 0x0008
79#define ENABLE_LVB_GRID_WORLDWIDE 0x0010
80
81WINBASEAPI WINBOOL WINAPI GetConsoleMode(HANDLE console_handle, LPDWORD mode);
82WINBASEAPI WINBOOL WINAPI SetConsoleMode(HANDLE console_handle, DWORD mode);
83WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE console_input, LPDWORD number_of_events);
84
85WINBASEAPI WINBOOL WINAPI ReadConsoleInputA(HANDLE console_input, PINPUT_RECORD buffer, DWORD length, LPDWORD number_of_events_read);
86WINBASEAPI WINBOOL WINAPI ReadConsoleInputW(HANDLE console_input, PINPUT_RECORD buffer, DWORD length, LPDWORD number_of_events_read);
87#define ReadConsoleInput __MINGW_NAME_AW(ReadConsoleInput)
88
89WINBASEAPI WINBOOL WINAPI PeekConsoleInputA(HANDLE console_input, PINPUT_RECORD buffer, DWORD length, LPDWORD number_of_events_read);
90WINBASEAPI WINBOOL WINAPI PeekConsoleInputW(HANDLE console_input, PINPUT_RECORD buffer, DWORD length, LPDWORD number_of_events_read);
91#define PeekConsoleInput __MINGW_NAME_AW(PeekConsoleInput)
92
93typedef struct _CONSOLE_READCONSOLE_CONTROL {
94 ULONG nLength;
95 ULONG nInitialChars;
96 ULONG dwCtrlWakeupMask;
97 ULONG dwControlKeyState;
98} CONSOLE_READCONSOLE_CONTROL, *PCONSOLE_READCONSOLE_CONTROL;
99
100WINBASEAPI WINBOOL WINAPI ReadConsoleA(HANDLE console_input, LPVOID buffer, DWORD number_of_chars_to_read, LPDWORD number_of_chars_read, PCONSOLE_READCONSOLE_CONTROL input_control);
101WINBASEAPI WINBOOL WINAPI ReadConsoleW(HANDLE console_input, LPVOID buffer, DWORD number_of_chars_to_read, LPDWORD number_of_chars_read, PCONSOLE_READCONSOLE_CONTROL input_control);
102#define ReadConsole __MINGW_NAME_AW(ReadConsole)
103
104WINBASEAPI WINBOOL WINAPI WriteConsoleA(HANDLE console_output, const void *buffer, DWORD number_of_chars_to_write, LPDWORD number_of_chars_written, LPVOID reserved);
105WINBASEAPI WINBOOL WINAPI WriteConsoleW(HANDLE console_output, const void *buffer, DWORD number_of_chars_to_write, LPDWORD number_of_chars_written, LPVOID reserved);
106#define WriteConsole __MINGW_NAME_AW(WriteConsole)
107
108#define CTRL_C_EVENT 0
109#define CTRL_BREAK_EVENT 1
110#define CTRL_CLOSE_EVENT 2
111#define CTRL_LOGOFF_EVENT 5
112#define CTRL_SHUTDOWN_EVENT 6
113
114typedef WINBOOL (WINAPI *PHANDLER_ROUTINE)(DWORD ctrl_type);
115WINBASEAPI WINBOOL WINAPI SetConsoleCtrlHandler(PHANDLER_ROUTINE handler_routine, WINBOOL add);
116
117#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
118
119#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
120
121#if (NTDDI_VERSION >= NTDDI_WIN10_RS5)
122#define PSEUDOCONSOLE_INHERIT_CURSOR (0x1)
123
124WINBASEAPI HRESULT WINAPI CreatePseudoConsole(COORD size, HANDLE input, HANDLE output, DWORD flags, HPCON *pc);
125WINBASEAPI HRESULT WINAPI ResizePseudoConsole(HPCON pc, COORD size);
126WINBASEAPI void WINAPI ClosePseudoConsole(HPCON pc);
127#endif
128
129#if (NTDDI_VERSION >= NTDDI_WIN11_GE)
130WINBASEAPI HRESULT WINAPI ReleasePseudoConsole(HPCON pc);
131#endif
132
133#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
134
135#ifdef __cplusplus
136}
137#endif
138
139#endif /* _APISETCONSOLE_ */
lib/libc/include/any-windows-any/consoleapi2.h created+144
...@@ -0,0 +1,144 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#ifndef _APISETCONSOLEL2_
8#define _APISETCONSOLEL2_
9
10#include <_mingw_unicode.h>
11
12#include <apiset.h>
13#include <apisetcconv.h>
14#include <minwinbase.h>
15#include <minwindef.h>
16
17#include <wincontypes.h>
18#include <windef.h>
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
25
26#define FOREGROUND_BLUE 0x0001
27#define FOREGROUND_GREEN 0x0002
28#define FOREGROUND_RED 0x0004
29#define FOREGROUND_INTENSITY 0x0008
30#define BACKGROUND_BLUE 0x0010
31#define BACKGROUND_GREEN 0x0020
32#define BACKGROUND_RED 0x0040
33#define BACKGROUND_INTENSITY 0x0080
34#define COMMON_LVB_LEADING_BYTE 0x0100
35#define COMMON_LVB_TRAILING_BYTE 0x0200
36#define COMMON_LVB_GRID_HORIZONTAL 0x0400
37#define COMMON_LVB_GRID_LVERTICAL 0x0800
38#define COMMON_LVB_GRID_RVERTICAL 0x1000
39#define COMMON_LVB_REVERSE_VIDEO 0x4000
40#define COMMON_LVB_UNDERSCORE 0x8000
41
42#define COMMON_LVB_SBCSDBCS 0x0300
43
44WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterA(HANDLE console_output, CHAR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
45WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterW(HANDLE console_output, WCHAR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
46#define FillConsoleOutputCharacter __MINGW_NAME_AW(FillConsoleOutputCharacter)
47
48WINBASEAPI WINBOOL WINAPI FillConsoleOutputAttribute(HANDLE console_output, WORD attribute, DWORD length, COORD write_coord, LPDWORD number_of_attrs_written);
49WINBASEAPI WINBOOL WINAPI GenerateConsoleCtrlEvent(DWORD ctrl_event, DWORD process_group_id);
50WINBASEAPI HANDLE WINAPI CreateConsoleScreenBuffer(DWORD desired_access, DWORD share_mode, const SECURITY_ATTRIBUTES *security_attributes, DWORD flags, LPVOID screen_buffer_data);
51WINBASEAPI WINBOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE console_output);
52WINBASEAPI WINBOOL WINAPI FlushConsoleInputBuffer(HANDLE console_input);
53WINBASEAPI WINBOOL WINAPI SetConsoleCP(UINT code_page_id);
54WINBASEAPI WINBOOL WINAPI SetConsoleOutputCP(UINT code_page_id);
55
56typedef struct _CONSOLE_CURSOR_INFO {
57 DWORD dwSize;
58 WINBOOL bVisible;
59} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
60
61WINBASEAPI WINBOOL WINAPI GetConsoleCursorInfo(HANDLE console_output, PCONSOLE_CURSOR_INFO console_cursor_info);
62WINBASEAPI WINBOOL WINAPI SetConsoleCursorInfo(HANDLE console_output, const CONSOLE_CURSOR_INFO *console_cursor_info);
63
64typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
65 COORD dwSize;
66 COORD dwCursorPosition;
67 WORD wAttributes;
68 SMALL_RECT srWindow;
69 COORD dwMaximumWindowSize;
70} CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO;
71
72WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfo(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFO console_screen_buffer_info);
73
74typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX {
75 ULONG cbSize;
76 COORD dwSize;
77 COORD dwCursorPosition;
78 WORD wAttributes;
79 SMALL_RECT srWindow;
80 COORD dwMaximumWindowSize;
81 WORD wPopupAttributes;
82 WINBOOL bFullscreenSupported;
83 COLORREF ColorTable[16];
84} CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX;
85
86WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfoEx(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFOEX console_screen_buffer_info_ex);
87WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferInfoEx(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFOEX console_screen_buffer_info_ex);
88WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferSize(HANDLE console_output, COORD size);
89WINBASEAPI WINBOOL WINAPI SetConsoleCursorPosition(HANDLE console_output, COORD cursor_position);
90WINBASEAPI COORD WINAPI GetLargestConsoleWindowSize(HANDLE console_output);
91WINBASEAPI WINBOOL WINAPI SetConsoleTextAttribute(HANDLE console_output, WORD attributes);
92WINBASEAPI WINBOOL WINAPI SetConsoleWindowInfo(HANDLE console_output, WINBOOL absolute, const SMALL_RECT *console_window);
93
94WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterA(HANDLE console_output, LPCSTR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
95WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterW(HANDLE console_output, LPCWSTR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
96#define WriteConsoleOutputCharacter __MINGW_NAME_AW(WriteConsoleOutputCharacter)
97
98WINBASEAPI WINBOOL WINAPI WriteConsoleOutputAttribute(HANDLE console_output, const WORD *attribute, DWORD length, COORD write_coord, LPDWORD number_of_attrs_written);
99
100WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterA(HANDLE console_output, LPSTR character, DWORD length, COORD read_coord, LPDWORD number_of_chars_read);
101WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterW(HANDLE console_output, LPWSTR character, DWORD length, COORD read_coord, LPDWORD number_of_chars_read);
102#define ReadConsoleOutputCharacter __MINGW_NAME_AW(ReadConsoleOutputCharacter)
103
104WINBASEAPI WINBOOL WINAPI ReadConsoleOutputAttribute(HANDLE console_output, LPWORD attribute, DWORD length, COORD read_coord, LPDWORD number_of_attrs_read);
105
106WINBASEAPI WINBOOL WINAPI WriteConsoleInputA(HANDLE console_input, const INPUT_RECORD *buffer, DWORD length, LPDWORD number_of_events_written);
107WINBASEAPI WINBOOL WINAPI WriteConsoleInputW(HANDLE console_input, const INPUT_RECORD *buffer, DWORD length, LPDWORD number_of_events_written);
108#define WriteConsoleInput __MINGW_NAME_AW(WriteConsoleInput)
109
110WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferA(HANDLE console_output, const SMALL_RECT *scroll_rectangle, const SMALL_RECT *clip_rectangle, COORD destination_origin, const CHAR_INFO *fill);
111WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferW(HANDLE console_output, const SMALL_RECT *scroll_rectangle, const SMALL_RECT *clip_rectangle, COORD destination_origin, const CHAR_INFO *fill);
112#define ScrollConsoleScreenBuffer __MINGW_NAME_AW(ScrollConsoleScreenBuffer)
113
114WINBASEAPI WINBOOL WINAPI WriteConsoleOutputA(HANDLE console_output, const CHAR_INFO *buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT write_region);
115WINBASEAPI WINBOOL WINAPI WriteConsoleOutputW(HANDLE console_output, const CHAR_INFO *buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT write_region);
116#define WriteConsoleOutput __MINGW_NAME_AW(WriteConsoleOutput)
117
118WINBASEAPI WINBOOL WINAPI ReadConsoleOutputA(HANDLE console_output, PCHAR_INFO buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT read_region);
119WINBASEAPI WINBOOL WINAPI ReadConsoleOutputW(HANDLE console_output, PCHAR_INFO buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT read_region);
120#define ReadConsoleOutput __MINGW_NAME_AW(ReadConsoleOutput)
121
122WINBASEAPI DWORD WINAPI GetConsoleTitleA(LPSTR console_title, DWORD size);
123WINBASEAPI DWORD WINAPI GetConsoleTitleW(LPWSTR console_title, DWORD size);
124#define GetConsoleTitle __MINGW_NAME_AW(GetConsoleTitle)
125
126#if (_WIN32_WINNT >= 0x0600)
127
128WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleA(LPSTR console_title, DWORD size);
129WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleW(LPWSTR console_title, DWORD size);
130#define GetConsoleOriginalTitle __MINGW_NAME_AW(GetConsoleOriginalTitle)
131
132#endif /* _WIN32_WINNT >= 0x0600 */
133
134WINBASEAPI WINBOOL WINAPI SetConsoleTitleA(LPCSTR console_title);
135WINBASEAPI WINBOOL WINAPI SetConsoleTitleW(LPCWSTR console_title);
136#define SetConsoleTitle __MINGW_NAME_AW(SetConsoleTitle)
137
138#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
139
140#ifdef __cplusplus
141}
142#endif
143
144#endif /* _APISETCONSOLEL2_ */
lib/libc/include/any-windows-any/consoleapi3.h created+146
...@@ -0,0 +1,146 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#ifndef _APISETCONSOLEL3_
8#define _APISETCONSOLEL3_
9
10#include <_mingw_unicode.h>
11
12#include <apiset.h>
13#include <apisetcconv.h>
14#include <minwinbase.h>
15#include <minwindef.h>
16
17#include <wincontypes.h>
18#include <windef.h>
19
20#ifndef NOGDI
21#include <wingdi.h>
22#endif
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
29
30WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD number_of_mouse_buttons);
31
32#if (_WIN32_WINNT >= 0x0500)
33
34WINBASEAPI COORD WINAPI GetConsoleFontSize(HANDLE console_output, DWORD font);
35WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFont(HANDLE console_output, WINBOOL maximum_window, PCONSOLE_FONT_INFO console_current_font);
36
37#ifndef NOGDI
38
39typedef struct _CONSOLE_FONT_INFOEX {
40 ULONG cbSize;
41 DWORD nFont;
42 COORD dwFontSize;
43 UINT FontFamily;
44 UINT FontWeight;
45 WCHAR FaceName[LF_FACESIZE];
46} CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;
47
48WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFontEx(HANDLE console_output, WINBOOL maximum_window, PCONSOLE_FONT_INFOEX console_current_font_ex);
49WINBASEAPI WINBOOL WINAPI SetCurrentConsoleFontEx(HANDLE console_output, WINBOOL maximum_window, PCONSOLE_FONT_INFOEX console_current_font_ex);
50
51#endif /* !NOGDI */
52
53#define CONSOLE_NO_SELECTION 0x0000
54#define CONSOLE_SELECTION_IN_PROGRESS 0x0001
55#define CONSOLE_SELECTION_NOT_EMPTY 0x0002
56#define CONSOLE_MOUSE_SELECTION 0x0004
57#define CONSOLE_MOUSE_DOWN 0x0008
58
59typedef struct _CONSOLE_SELECTION_INFO {
60 DWORD dwFlags;
61 COORD dwSelectionAnchor;
62 SMALL_RECT srSelection;
63} CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO;
64
65WINBASEAPI WINBOOL WINAPI GetConsoleSelectionInfo(PCONSOLE_SELECTION_INFO console_selection_info);
66
67#define HISTORY_NO_DUP_FLAG 0x1
68
69typedef struct _CONSOLE_HISTORY_INFO {
70 UINT cbSize;
71 UINT HistoryBufferSize;
72 UINT NumberOfHistoryBuffers;
73 DWORD dwFlags;
74} CONSOLE_HISTORY_INFO, *PCONSOLE_HISTORY_INFO;
75
76WINBASEAPI WINBOOL WINAPI GetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO console_history_info);
77WINBASEAPI WINBOOL WINAPI SetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO console_history_info);
78
79#define CONSOLE_FULLSCREEN 1
80#define CONSOLE_FULLSCREEN_HARDWARE 2
81
82WINBASEAPI WINBOOL APIENTRY GetConsoleDisplayMode(LPDWORD mode_flags);
83
84#define CONSOLE_FULLSCREEN_MODE 1
85#define CONSOLE_WINDOWED_MODE 2
86
87WINBASEAPI WINBOOL APIENTRY SetConsoleDisplayMode(HANDLE console_output, DWORD flags, PCOORD new_screen_buffer_dimensions);
88WINBASEAPI HWND APIENTRY GetConsoleWindow(void);
89
90#endif /* _WIN32_WINNT >= 0x0500 */
91
92#if (_WIN32_WINNT >= 0x0501)
93
94WINBASEAPI WINBOOL APIENTRY AddConsoleAliasA(LPSTR source, LPSTR target, LPSTR exe_name);
95WINBASEAPI WINBOOL APIENTRY AddConsoleAliasW(LPWSTR source, LPWSTR target, LPWSTR exe_name);
96#define AddConsoleAlias __MINGW_NAME_AW(AddConsoleAlias)
97
98WINBASEAPI DWORD APIENTRY GetConsoleAliasA(LPSTR source, LPSTR target_buffer, DWORD target_buffer_length, LPSTR exe_name);
99WINBASEAPI DWORD APIENTRY GetConsoleAliasW(LPWSTR source, LPWSTR target_buffer, DWORD target_buffer_length, LPWSTR exe_name);
100#define GetConsoleAlias __MINGW_NAME_AW(GetConsoleAlias)
101
102WINBASEAPI DWORD APIENTRY GetConsoleAliasesLengthA(LPSTR exe_name);
103WINBASEAPI DWORD APIENTRY GetConsoleAliasesLengthW(LPWSTR exe_name);
104#define GetConsoleAliasesLength __MINGW_NAME_AW(GetConsoleAliasesLength)
105
106WINBASEAPI DWORD APIENTRY GetConsoleAliasExesLengthA(void);
107WINBASEAPI DWORD APIENTRY GetConsoleAliasExesLengthW(void);
108#define GetConsoleAliasExesLength __MINGW_NAME_AW(GetConsoleAliasExesLength)
109
110WINBASEAPI DWORD APIENTRY GetConsoleAliasesA(LPSTR alias_buffer, DWORD alias_buffer_length, LPSTR exe_name);
111WINBASEAPI DWORD APIENTRY GetConsoleAliasesW(LPWSTR alias_buffer, DWORD alias_buffer_length, LPWSTR exe_name);
112#define GetConsoleAliases __MINGW_NAME_AW(GetConsoleAliases)
113
114WINBASEAPI DWORD APIENTRY GetConsoleAliasExesA(LPSTR exe_name_buffer, DWORD exe_name_buffer_length);
115WINBASEAPI DWORD APIENTRY GetConsoleAliasExesW(LPWSTR exe_name_buffer, DWORD exe_name_buffer_length);
116#define GetConsoleAliasExes __MINGW_NAME_AW(GetConsoleAliasExes)
117
118#endif /* _WIN32_WINNT >= 0x0501 */
119
120WINBASEAPI void APIENTRY ExpungeConsoleCommandHistoryA(LPSTR exe_name);
121WINBASEAPI void APIENTRY ExpungeConsoleCommandHistoryW(LPWSTR exe_name);
122#define ExpungeConsoleCommandHistory __MINGW_NAME_AW(ExpungeConsoleCommandHistory)
123
124WINBASEAPI WINBOOL APIENTRY SetConsoleNumberOfCommandsA(DWORD number, LPSTR exe_name);
125WINBASEAPI WINBOOL APIENTRY SetConsoleNumberOfCommandsW(DWORD number, LPWSTR exe_name);
126#define SetConsoleNumberOfCommands __MINGW_NAME_AW(SetConsoleNumberOfCommands)
127
128WINBASEAPI DWORD APIENTRY GetConsoleCommandHistoryLengthA(LPSTR exe_name);
129WINBASEAPI DWORD APIENTRY GetConsoleCommandHistoryLengthW(LPWSTR exe_name);
130#define GetConsoleCommandHistoryLength __MINGW_NAME_AW(GetConsoleCommandHistoryLength)
131
132WINBASEAPI DWORD APIENTRY GetConsoleCommandHistoryA(LPSTR commands, DWORD command_buffer_length, LPSTR exe_name);
133WINBASEAPI DWORD APIENTRY GetConsoleCommandHistoryW(LPWSTR commands, DWORD command_buffer_length, LPWSTR exe_name);
134#define GetConsoleCommandHistory __MINGW_NAME_AW(GetConsoleCommandHistory)
135
136#if (_WIN32_WINNT >= 0x0501)
137WINBASEAPI DWORD APIENTRY GetConsoleProcessList(LPDWORD process_list, DWORD process_count);
138#endif /* _WIN32_WINNT >= 0x0501 */
139
140#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
141
142#ifdef __cplusplus
143}
144#endif
145
146#endif /* _APISETCONSOLEL3_ */
lib/libc/include/any-windows-any/control.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/control.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/control.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/corecrt_wstdlib.h+9-1
...@@ -10,6 +10,15 @@...@@ -10,6 +10,15 @@
1010
11#ifdef __cplusplus11#ifdef __cplusplus
12extern "C" {12extern "C" {
13#endif
14
15#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
16#pragma push_macro("_wdupenv_s")
17#undef _wdupenv_s
18#endif
19 _CRTIMP errno_t __cdecl _wdupenv_s(wchar_t **_Buffer,size_t *_BufferSizeInWords,const wchar_t *_VarName);
20#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
21#pragma pop_macro("_wdupenv_s")
13#endif22#endif
1423
15 _CRTIMP errno_t __cdecl _itow_s (int _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix);24 _CRTIMP errno_t __cdecl _itow_s (int _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix);
...@@ -24,7 +33,6 @@ extern "C" {...@@ -24,7 +33,6 @@ extern "C" {
24 _CRTIMP errno_t __cdecl _wgetenv_s(size_t *_ReturnSize,wchar_t *_DstBuf,size_t _DstSizeInWords,const wchar_t *_VarName);33 _CRTIMP errno_t __cdecl _wgetenv_s(size_t *_ReturnSize,wchar_t *_DstBuf,size_t _DstSizeInWords,const wchar_t *_VarName);
25 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t,_wgetenv_s,size_t*,_ReturnSize,wchar_t,_DstBuf,const wchar_t*,_VarName)34 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t,_wgetenv_s,size_t*,_ReturnSize,wchar_t,_DstBuf,const wchar_t*,_VarName)
2635
27 _CRTIMP errno_t __cdecl _wdupenv_s(wchar_t **_Buffer,size_t *_BufferSizeInWords,const wchar_t *_VarName);
28 _CRTIMP errno_t __cdecl _i64tow_s(__int64 _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix);36 _CRTIMP errno_t __cdecl _i64tow_s(__int64 _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix);
29 _CRTIMP errno_t __cdecl _ui64tow_s(unsigned __int64 _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix);37 _CRTIMP errno_t __cdecl _ui64tow_s(unsigned __int64 _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix);
3038
lib/libc/include/any-windows-any/credentialprovider.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/credentialprovider.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/credentialprovider.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/crtdbg.h+231-1
...@@ -4,6 +4,7 @@...@@ -4,6 +4,7 @@
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */5 */
6#include <crtdefs.h>6#include <crtdefs.h>
7#include <sal.h>
78
8#ifndef _INC_CRTDBG9#ifndef _INC_CRTDBG
9#define _INC_CRTDBG10#define _INC_CRTDBG
...@@ -94,13 +95,21 @@ extern "C" {...@@ -94,13 +95,21 @@ extern "C" {
94 } _CrtMemState;95 } _CrtMemState;
9596
96#ifndef _STATIC_ASSERT97#ifndef _STATIC_ASSERT
97#if defined(_MSC_VER)98#if (defined(__cpp_static_assert) && __cpp_static_assert >= 201411L) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L)
99#define _STATIC_ASSERT(expr) static_assert(expr)
100#elif defined(__cpp_static_assert)
101#define _STATIC_ASSERT(expr) static_assert(expr, #expr)
102#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
103#define _STATIC_ASSERT(expr) _Static_assert(expr, #expr)
104#elif defined(_MSC_VER)
98#define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr)]105#define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr)]
99#else106#else
100#define _STATIC_ASSERT(expr) extern void __static_assert_t(int [(expr)?1:-1])107#define _STATIC_ASSERT(expr) extern void __static_assert_t(int [(expr)?1:-1])
101#endif108#endif
102#endif109#endif
103110
111#ifndef _DEBUG
112
104#ifndef _ASSERT113#ifndef _ASSERT
105#define _ASSERT(expr) ((void)0)114#define _ASSERT(expr) ((void)0)
106#endif115#endif
...@@ -208,6 +217,227 @@ extern "C" {...@@ -208,6 +217,227 @@ extern "C" {
208#define _CrtSetCheckCount(f) ((int)0)217#define _CrtSetCheckCount(f) ((int)0)
209#define _CrtGetCheckCount() ((int)0)218#define _CrtGetCheckCount() ((int)0)
210219
220#else /* _DEBUG */
221
222_CRTIMP long * __cdecl __p__crtAssertBusy(void);
223#define _crtAssertBusy (*__p__crtAssertBusy())
224
225_CRTIMP _CRT_REPORT_HOOK __cdecl _CrtGetReportHook(void);
226_CRTIMP _CRT_REPORT_HOOK __cdecl _CrtSetReportHook(_CRT_REPORT_HOOK _PFnNewHook);
227_CRTIMP int __cdecl _CrtSetReportHook2(int _Mode, _CRT_REPORT_HOOK _PFnNewHook);
228_CRTIMP int __cdecl _CrtSetReportHookW2(int _Mode, _CRT_REPORT_HOOKW _PFnNewHook);
229_CRTIMP int __cdecl _CrtSetReportMode(int _ReportType, int _ReportMode);
230_CRTIMP _HFILE __cdecl _CrtSetReportFile(int _ReportType, _HFILE _ReportFile);
231_CRTIMP int __cdecl _CrtDbgReport(int _ReportType, const char * _Filename, int _Linenumber, const char * _ModuleName, const char * _Format, ...);
232_CRTIMP size_t __cdecl _CrtSetDebugFillThreshold(size_t _NewDebugFillThreshold);
233_CRTIMP int __cdecl _CrtDbgReportW(int _ReportType, const wchar_t * _Filename, int _LineNumber, const wchar_t * _ModuleName, const wchar_t * _Format, ...);
234
235#define _ASSERT_EXPR(expr, msg) \
236 (void) ((!!(expr)) || \
237 (1 != _CrtDbgReportW(_CRT_ASSERT, _CRT_WIDE(__FILE__), __LINE__, NULL, msg)) || \
238 (_CrtDbgBreak(), 0))
239
240#ifndef _ASSERT
241#define _ASSERT(expr) _ASSERT_EXPR((expr), NULL)
242#endif
243
244#ifndef _ASSERTE
245#define _ASSERTE(expr) _ASSERT_EXPR((expr), _CRT_WIDE(#expr))
246#endif
247
248#ifndef _ASSERT_BASE
249#define _ASSERT_BASE _ASSERT_EXPR
250#endif
251
252#define _RPT_BASE(args) \
253 (void) ((1 != _CrtDbgReport args) || \
254 (_CrtDbgBreak(), 0))
255
256#define _RPT_BASE_W(args) \
257 (void) ((1 != _CrtDbgReportW args) || \
258 (_CrtDbgBreak(), 0))
259
260#define _RPT0(rptno, msg) \
261 _RPT_BASE((rptno, NULL, 0, NULL, "%s", msg))
262
263#define _RPTW0(rptno, msg) \
264 _RPT_BASE_W((rptno, NULL, 0, NULL, L"%s", msg))
265
266#define _RPT1(rptno, msg, arg1) \
267 _RPT_BASE((rptno, NULL, 0, NULL, msg, arg1))
268
269#define _RPTW1(rptno, msg, arg1) \
270 _RPT_BASE_W((rptno, NULL, 0, NULL, msg, arg1))
271
272#define _RPT2(rptno, msg, arg1, arg2) \
273 _RPT_BASE((rptno, NULL, 0, NULL, msg, arg1, arg2))
274
275#define _RPTW2(rptno, msg, arg1, arg2) \
276 _RPT_BASE_W((rptno, NULL, 0, NULL, msg, arg1, arg2))
277
278#define _RPT3(rptno, msg, arg1, arg2, arg3) \
279 _RPT_BASE((rptno, NULL, 0, NULL, msg, arg1, arg2, arg3))
280
281#define _RPTW3(rptno, msg, arg1, arg2, arg3) \
282 _RPT_BASE_W((rptno, NULL, 0, NULL, msg, arg1, arg2, arg3))
283
284#define _RPT4(rptno, msg, arg1, arg2, arg3, arg4) \
285 _RPT_BASE((rptno, NULL, 0, NULL, msg, arg1, arg2, arg3, arg4))
286
287#define _RPTW4(rptno, msg, arg1, arg2, arg3, arg4) \
288 _RPT_BASE_W((rptno, NULL, 0, NULL, msg, arg1, arg2, arg3, arg4))
289
290#define _RPT5(rptno, msg, arg1, arg2, arg3, arg4, arg5) \
291 _RPT_BASE((rptno, NULL, 0, NULL, msg, arg1, arg2, arg3, arg4, arg5))
292
293#define _RPTW5(rptno, msg, arg1, arg2, arg3, arg4, arg5) \
294 _RPT_BASE_W((rptno, NULL, 0, NULL, msg, arg1, arg2, arg3, arg4, arg5))
295
296#define _RPTF0(rptno, msg) \
297 _RPT_BASE((rptno, __FILE__, __LINE__, NULL, "%s", msg))
298
299#define _RPTFW0(rptno, msg) \
300 _RPT_BASE_W((rptno, _CRT_WIDE(__FILE__), __LINE__, NULL, L"%s", msg))
301
302#define _RPTF1(rptno, msg, arg1) \
303 _RPT_BASE((rptno, __FILE__, __LINE__, NULL, msg, arg1))
304
305#define _RPTFW1(rptno, msg, arg1) \
306 _RPT_BASE_W((rptno, _CRT_WIDE(__FILE__), __LINE__, NULL, msg, arg1))
307
308#define _RPTF2(rptno, msg, arg1, arg2) \
309 _RPT_BASE((rptno, __FILE__, __LINE__, NULL, msg, arg1, arg2))
310
311#define _RPTFW2(rptno, msg, arg1, arg2) \
312 _RPT_BASE_W((rptno, _CRT_WIDE(__FILE__), __LINE__, NULL, msg, arg1, arg2))
313
314#define _RPTF3(rptno, msg, arg1, arg2, arg3) \
315 _RPT_BASE((rptno, __FILE__, __LINE__, NULL, msg, arg1, arg2, arg3))
316
317#define _RPTFW3(rptno, msg, arg1, arg2, arg3) \
318 _RPT_BASE_W((rptno, _CRT_WIDE(__FILE__), __LINE__, NULL, msg, arg1, arg2, arg3))
319
320#define _RPTF4(rptno, msg, arg1, arg2, arg3, arg4) \
321 _RPT_BASE((rptno, __FILE__, __LINE__, NULL, msg, arg1, arg2, arg3, arg4))
322
323#define _RPTFW4(rptno, msg, arg1, arg2, arg3, arg4) \
324 _RPT_BASE_W((rptno, _CRT_WIDE(__FILE__), __LINE__, NULL, msg, arg1, arg2, arg3, arg4))
325
326#define _RPTF5(rptno, msg, arg1, arg2, arg3, arg4, arg5) \
327 _RPT_BASE((rptno, __FILE__, __LINE__, NULL, msg, arg1, arg2, arg3, arg4, arg5))
328
329#define _RPTFW5(rptno, msg, arg1, arg2, arg3, arg4, arg5) \
330 _RPT_BASE_W((rptno, _CRT_WIDE(__FILE__), __LINE__, NULL, msg, arg1, arg2, arg3, arg4, arg5))
331
332#define _CrtDbgBreak() __debugbreak()
333
334#ifdef _CRTDBG_MAP_ALLOC
335
336#define malloc(s) _malloc_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
337#define calloc(c, s) _calloc_dbg(c, s, _NORMAL_BLOCK, __FILE__, __LINE__)
338#define realloc(p, s) _realloc_dbg(p, s, _NORMAL_BLOCK, __FILE__, __LINE__)
339#define _recalloc(p, c, s) _recalloc_dbg(p, c, s, _NORMAL_BLOCK, __FILE__, __LINE__)
340#define _expand(p, s) _expand_dbg(p, s, _NORMAL_BLOCK, __FILE__, __LINE__)
341#define free(p) _free_dbg(p, _NORMAL_BLOCK)
342#define _msize(p) _msize_dbg(p, _NORMAL_BLOCK)
343#define _aligned_msize(p, a, o) _aligned_msize_dbg(p, a, o)
344#define _aligned_malloc(s, a) _aligned_malloc_dbg(s, a, __FILE__, __LINE__)
345#define _aligned_realloc(p, s, a) _aligned_realloc_dbg(p, s, a, __FILE__, __LINE__)
346#define _aligned_recalloc(p, c, s, a) _aligned_recalloc_dbg(p, c, s, a, __FILE__, __LINE__)
347#define _aligned_offset_malloc(s, a, o) _aligned_offset_malloc_dbg(s, a, o, __FILE__, __LINE__)
348#define _aligned_offset_realloc(p, s, a, o) _aligned_offset_realloc_dbg(p, s, a, o, __FILE__, __LINE__)
349#define _aligned_offset_recalloc(p, c, s, a, o) _aligned_offset_recalloc_dbg(p, c, s, a, o, __FILE__, __LINE__)
350#define _aligned_free(p) _aligned_free_dbg(p)
351
352#define _malloca(s) _malloca_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
353#define _freea(p) _freea_dbg(p, _NORMAL_BLOCK)
354
355#define _strdup(s) _strdup_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
356#define _wcsdup(s) _wcsdup_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
357#define _mbsdup(s) _strdup_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
358#define _tempnam(s1, s2) _tempnam_dbg(s1, s2, _NORMAL_BLOCK, __FILE__, __LINE__)
359#define _wtempnam(s1, s2) _wtempnam_dbg(s1, s2, _NORMAL_BLOCK, __FILE__, __LINE__)
360#define _fullpath(s1, s2, le) _fullpath_dbg(s1, s2, le, _NORMAL_BLOCK, __FILE__, __LINE__)
361#define _wfullpath(s1, s2, le) _wfullpath_dbg(s1, s2, le, _NORMAL_BLOCK, __FILE__, __LINE__)
362#define _getcwd(s, le) _getcwd_dbg(s, le, _NORMAL_BLOCK, __FILE__, __LINE__)
363#define _wgetcwd(s, le) _wgetcwd_dbg(s, le, _NORMAL_BLOCK, __FILE__, __LINE__)
364#define _getdcwd(d, s, le) _getdcwd_dbg(d, s, le, _NORMAL_BLOCK, __FILE__, __LINE__)
365#define _wgetdcwd(d, s, le) _wgetdcwd_dbg(d, s, le, _NORMAL_BLOCK, __FILE__, __LINE__)
366#define _getdcwd_nolock(d, s, le) _getdcwd_lk_dbg(d, s, le, _NORMAL_BLOCK, __FILE__, __LINE__)
367#define _wgetdcwd_nolock(d, s, le) _wgetdcwd_lk_dbg(d, s, le, _NORMAL_BLOCK, __FILE__, __LINE__)
368#define _dupenv_s(ps1, size, s2) _dupenv_s_dbg(ps1, size, s2, _NORMAL_BLOCK, __FILE__, __LINE__)
369#define _wdupenv_s(ps1, size, s2) _wdupenv_s_dbg(ps1, size, s2, _NORMAL_BLOCK, __FILE__, __LINE__)
370
371#define strdup(s) _strdup_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
372#define wcsdup(s) _wcsdup_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
373#define tempnam(s1, s2) _tempnam_dbg(s1, s2, _NORMAL_BLOCK, __FILE__, __LINE__)
374#define getcwd(s, le) _getcwd_dbg(s, le, _NORMAL_BLOCK, __FILE__, __LINE__)
375
376#endif /* _CRTDBG_MAP_ALLOC */
377
378_CRTIMP long * __cdecl __p__crtBreakAlloc(void);
379#define _crtBreakAlloc (*__p__crtBreakAlloc())
380
381_CRTIMP long __cdecl _CrtSetBreakAlloc(long _BreakAlloc);
382
383_CRTIMP __checkReturn void * __cdecl _malloc_dbg(size_t _Size, int _BlockType, const char * _Filename, int _LineNumber);
384_CRTIMP __checkReturn void * __cdecl _calloc_dbg(size_t _NumOfElements, size_t _SizeOfElements, int _BlockType, const char * _Filename, int _LineNumber);
385_CRTIMP __checkReturn void * __cdecl _realloc_dbg(void * _Memory, size_t _NewSize, int _BlockType, const char * _Filename, int _LineNumber);
386_CRTIMP __checkReturn void * __cdecl _recalloc_dbg(void * _Memory, size_t _NumOfElements, size_t _SizeOfElements, int _BlockType, const char * _Filename, int _LineNumber);
387_CRTIMP __checkReturn void * __cdecl _expand_dbg(void * _Memory, size_t _NewSize, int _BlockType, const char * _Filename, int _LineNumber);
388_CRTIMP void __cdecl _free_dbg(void * _Memory, int _BlockType);
389_CRTIMP size_t __cdecl _msize_dbg(void * _Memory, int _BlockType);
390_CRTIMP size_t __cdecl _aligned_msize_dbg(void * _Memory, size_t _Alignment, size_t _Offset);
391_CRTIMP __checkReturn void * __cdecl _aligned_malloc_dbg(size_t _Size, size_t _Alignment, const char * _Filename, int _LineNumber);
392_CRTIMP __checkReturn void * __cdecl _aligned_realloc_dbg(void * _Memory, size_t _Size, size_t _Alignment, const char * _Filename, int _LineNumber);
393_CRTIMP __checkReturn void * __cdecl _aligned_recalloc_dbg(void * _Memory, size_t _NumOfElements, size_t _SizeOfElements, size_t _Alignment, const char * _Filename, int _LineNumber);
394_CRTIMP __checkReturn void * __cdecl _aligned_offset_malloc_dbg(size_t _Size, size_t _Alignment, size_t _Offset, const char * _Filename, int _LineNumber);
395_CRTIMP __checkReturn void * __cdecl _aligned_offset_realloc_dbg(void * _Memory, size_t _Size, size_t _Alignment, size_t _Offset, const char * _Filename, int _LineNumber);
396_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);
397_CRTIMP void __cdecl _aligned_free_dbg(void * _Memory);
398_CRTIMP __checkReturn char * __cdecl _strdup_dbg(const char * _Str, int _BlockType, const char * _Filename, int _LineNumber);
399_CRTIMP __checkReturn wchar_t * __cdecl _wcsdup_dbg(const wchar_t * _Str, int _BlockType, const char * _Filename, int _LineNumber);
400_CRTIMP __checkReturn char * __cdecl _tempnam_dbg(const char * _DirName, const char * _FilePrefix, int _BlockType, const char * _Filename, int _LineNumber);
401_CRTIMP __checkReturn wchar_t * __cdecl _wtempnam_dbg(const wchar_t * _DirName, const wchar_t * _FilePrefix, int _BlockType, const char * _Filename, int _LineNumber);
402_CRTIMP __checkReturn char * __cdecl _fullpath_dbg(char * _FullPath, const char * _Path, size_t _SizeInBytes, int _BlockType, const char * _Filename, int _LineNumber);
403_CRTIMP __checkReturn wchar_t * __cdecl _wfullpath_dbg(wchar_t * _FullPath, const wchar_t * _Path, size_t _SizeInWords, int _BlockType, const char * _Filename, int _LineNumber);
404_CRTIMP __checkReturn char * __cdecl _getcwd_dbg(char * _DstBuf, int _SizeInBytes, int _BlockType, const char * _Filename, int _LineNumber);
405_CRTIMP __checkReturn wchar_t * __cdecl _wgetcwd_dbg(wchar_t * _DstBuf, int _SizeInWords, int _BlockType, const char * _Filename, int _LineNumber);
406_CRTIMP __checkReturn char * __cdecl _getdcwd_dbg(int _Drive, char * _DstBuf, int _SizeInBytes, int _BlockType, const char * _Filename, int _LineNumber);
407_CRTIMP __checkReturn wchar_t * __cdecl _wgetdcwd_dbg(int _Drive, wchar_t * _DstBuf, int _SizeInWords, int _BlockType, const char * _Filename, int _LineNumber);
408__checkReturn char * __cdecl _getdcwd_lk_dbg(int _Drive, char * _DstBuf, int _SizeInBytes, int _BlockType, const char * _Filename, int _LineNumber);
409__checkReturn wchar_t * __cdecl _wgetdcwd_lk_dbg(int _Drive, wchar_t * _DstBuf, int _SizeInWords, int _BlockType, const char * _Filename, int _LineNumber);
410_CRTIMP __checkReturn errno_t __cdecl _dupenv_s_dbg(char ** _PBuffer, size_t * _PBufferSizeInBytes, const char * _VarName, int _BlockType, const char * _Filename, int _LineNumber);
411_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);
412
413#define _malloca_dbg(s, t, f, l) _malloc_dbg(s, t, f, l)
414#define _freea_dbg(p, t) _free_dbg(p, t)
415
416_CRTIMP _CRT_ALLOC_HOOK __cdecl _CrtGetAllocHook(void);
417_CRTIMP _CRT_ALLOC_HOOK __cdecl _CrtSetAllocHook(_CRT_ALLOC_HOOK _PfnNewHook);
418
419_CRTIMP int * __cdecl __p__crtDbgFlag(void);
420#define _crtDbgFlag (*__p__crtDbgFlag())
421
422_CRTIMP int __cdecl _CrtCheckMemory(void);
423_CRTIMP int __cdecl _CrtSetDbgFlag(int _NewFlag);
424_CRTIMP void __cdecl _CrtDoForAllClientObjects(void (__cdecl *_PFn)(void *, void *), void * _Context);
425_CRTIMP __checkReturn int __cdecl _CrtIsValidPointer(const void * _Ptr, unsigned int _Bytes, int _ReadWrite);
426_CRTIMP __checkReturn int __cdecl _CrtIsValidHeapPointer(const void * _HeapPtr);
427_CRTIMP int __cdecl _CrtIsMemoryBlock(const void * _Memory, unsigned int _Bytes, long * _RequestNumber, char ** _Filename, int * _LineNumber);
428_CRTIMP __checkReturn int __cdecl _CrtReportBlockType(const void * _Memory);
429_CRTIMP _CRT_DUMP_CLIENT __cdecl _CrtGetDumpClient(void);
430_CRTIMP _CRT_DUMP_CLIENT __cdecl _CrtSetDumpClient(_CRT_DUMP_CLIENT _PFnNewDump);
431_CRTIMP _CRT_MANAGED_HEAP_DEPRECATE void __cdecl _CrtMemCheckpoint(_CrtMemState * _State);
432_CRTIMP _CRT_MANAGED_HEAP_DEPRECATE int __cdecl _CrtMemDifference(_CrtMemState * _State, const _CrtMemState * _OldState, const _CrtMemState * _NewState);
433_CRTIMP void __cdecl _CrtMemDumpAllObjectsSince(const _CrtMemState * _State);
434_CRTIMP void __cdecl _CrtMemDumpStatistics(const _CrtMemState * _State);
435_CRTIMP int __cdecl _CrtDumpMemoryLeaks(void);
436_CRTIMP int __cdecl _CrtSetCheckCount(int _CheckCount);
437_CRTIMP int __cdecl _CrtGetCheckCount(void);
438
439#endif /* _DEBUG */
440
211#ifdef __cplusplus441#ifdef __cplusplus
212}442}
213/*443/*
lib/libc/include/any-windows-any/ctfutb.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/ctfutb.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/ctfutb.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/ctxtcall.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/ctxtcall.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/ctxtcall.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/ctype.h+41-31
...@@ -111,35 +111,38 @@ extern "C" {...@@ -111,35 +111,38 @@ extern "C" {
111 _CRTIMP int __cdecl __toascii(int _C);111 _CRTIMP int __cdecl __toascii(int _C);
112 _CRTIMP int __cdecl __iscsymf(int _C);112 _CRTIMP int __cdecl __iscsymf(int _C);
113 _CRTIMP int __cdecl __iscsym(int _C);113 _CRTIMP int __cdecl __iscsym(int _C);
114114#if __MSVCRT_VERSION__ >= 0xC00
115#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) || defined (__cplusplus)115 _CRTIMP int __cdecl isblank(int _C);
116int __cdecl isblank(int _C);116 _CRTIMP int __cdecl _isblank_l(int _C,_locale_t _Locale);
117#endif117#else
118 int __cdecl isblank(int _C);
119#endif /* msvcr120 */
118#endif120#endif
119121
120#ifndef _WCTYPE_DEFINED122#ifndef _WCTYPE_DEFINED
121#define _WCTYPE_DEFINED123#define _WCTYPE_DEFINED
122124
123 int __cdecl iswalpha(wint_t _C);125 _CRTIMP int __cdecl iswalpha(wint_t _C);
124 int __cdecl iswupper(wint_t _C);126 _CRTIMP int __cdecl iswupper(wint_t _C);
125 int __cdecl iswlower(wint_t _C);127 _CRTIMP int __cdecl iswlower(wint_t _C);
126 int __cdecl iswdigit(wint_t _C);128 _CRTIMP int __cdecl iswdigit(wint_t _C);
127 int __cdecl iswxdigit(wint_t _C);129 _CRTIMP int __cdecl iswxdigit(wint_t _C);
128 int __cdecl iswspace(wint_t _C);130 _CRTIMP int __cdecl iswspace(wint_t _C);
129 int __cdecl iswpunct(wint_t _C);131 _CRTIMP int __cdecl iswpunct(wint_t _C);
130 int __cdecl iswalnum(wint_t _C);132 _CRTIMP int __cdecl iswalnum(wint_t _C);
131 int __cdecl iswprint(wint_t _C);133 _CRTIMP int __cdecl iswprint(wint_t _C);
132 int __cdecl iswgraph(wint_t _C);134 _CRTIMP int __cdecl iswgraph(wint_t _C);
133 int __cdecl iswcntrl(wint_t _C);135 _CRTIMP int __cdecl iswcntrl(wint_t _C);
134 int __cdecl iswascii(wint_t _C);136 _CRTIMP int __cdecl iswascii(wint_t _C);
135#ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP137#ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
136 int __cdecl isleadbyte(int _C);138 _CRTIMP int __cdecl isleadbyte(int _C);
137#endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */139#endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */
138 wint_t __cdecl towupper(wint_t _C);140 _CRTIMP wint_t __cdecl towupper(wint_t _C);
139 wint_t __cdecl towlower(wint_t _C);141 _CRTIMP wint_t __cdecl towlower(wint_t _C);
140 int __cdecl iswctype(wint_t _C,wctype_t _Type);142 _CRTIMP int __cdecl iswctype(wint_t _C,wctype_t _Type);
141#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x700 && _WIN32_WINNT >= 0x0600)143#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x600 && _WIN32_WINNT >= 0x0600)
142 /* These are available since msvcr80.dll, and in msvcrt.dll since Vista. */144 /* These are available since msvcr80.dll (__MSVCRT_VERSION__ >= 0x800), and in
145 * msvcrt.dll (__MSVCRT_VERSION__ == 0x600) since Vista (_WIN32_WINNT >= 0x0600). */
143 _CRTIMP int __cdecl _iswalpha_l(wint_t _C,_locale_t _Locale);146 _CRTIMP int __cdecl _iswalpha_l(wint_t _C,_locale_t _Locale);
144 _CRTIMP int __cdecl _iswupper_l(wint_t _C,_locale_t _Locale);147 _CRTIMP int __cdecl _iswupper_l(wint_t _C,_locale_t _Locale);
145 _CRTIMP int __cdecl _iswlower_l(wint_t _C,_locale_t _Locale);148 _CRTIMP int __cdecl _iswlower_l(wint_t _C,_locale_t _Locale);
...@@ -166,12 +169,15 @@ int __cdecl isblank(int _C);...@@ -166,12 +169,15 @@ int __cdecl isblank(int _C);
166 _CRTIMP int __cdecl _iswcsym_l(wint_t _C,_locale_t _Locale);169 _CRTIMP int __cdecl _iswcsym_l(wint_t _C,_locale_t _Locale);
167#endif170#endif
168#ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP171#ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
169 int __cdecl is_wctype(wint_t _C,wctype_t _Type);172 _CRTIMP int __cdecl is_wctype(wint_t _C,wctype_t _Type);
170#endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */173#endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */
171174
172#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) || defined (__cplusplus)175#if __MSVCRT_VERSION__ >= 0xC00
173int __cdecl iswblank(wint_t _C);176 _CRTIMP int __cdecl iswblank(wint_t _C);
174#endif177 _CRTIMP int __cdecl _iswblank_l(wint_t _C,_locale_t _Locale);
178#else
179 int __cdecl iswblank(wint_t _C);
180#endif /* msvcr120 */
175#endif181#endif
176182
177#ifndef _CTYPE_DISABLE_MACROS183#ifndef _CTYPE_DISABLE_MACROS
...@@ -225,7 +231,8 @@ _CRTIMP int __cdecl ___mb_cur_max_func(void);...@@ -225,7 +231,8 @@ _CRTIMP int __cdecl ___mb_cur_max_func(void);
225#define iswgraph(_c) (iswctype(_c,_PUNCT|_ALPHA|_DIGIT))231#define iswgraph(_c) (iswctype(_c,_PUNCT|_ALPHA|_DIGIT))
226#define iswcntrl(_c) (iswctype(_c,_CONTROL))232#define iswcntrl(_c) (iswctype(_c,_CONTROL))
227#define iswascii(_c) ((unsigned)(_c) < 0x80)233#define iswascii(_c) ((unsigned)(_c) < 0x80)
228#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x700 && _WIN32_WINNT >= 0x0600)234#define iswblank(_c) (iswctype(_c,_SPACE) || ((_c)=='\t'))
235#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x600 && _WIN32_WINNT >= 0x0600)
229# define _iswalpha_l(_c,_p) (_iswctype_l(_c,_ALPHA,_p))236# define _iswalpha_l(_c,_p) (_iswctype_l(_c,_ALPHA,_p))
230# define _iswupper_l(_c,_p) (_iswctype_l(_c,_UPPER,_p))237# define _iswupper_l(_c,_p) (_iswctype_l(_c,_UPPER,_p))
231# define _iswlower_l(_c,_p) (_iswctype_l(_c,_LOWER,_p))238# define _iswlower_l(_c,_p) (_iswctype_l(_c,_LOWER,_p))
...@@ -238,7 +245,10 @@ _CRTIMP int __cdecl ___mb_cur_max_func(void);...@@ -238,7 +245,10 @@ _CRTIMP int __cdecl ___mb_cur_max_func(void);
238# define _iswgraph_l(_c,_p) (_iswctype_l(_c,_PUNCT|_ALPHA|_DIGIT,_p))245# define _iswgraph_l(_c,_p) (_iswctype_l(_c,_PUNCT|_ALPHA|_DIGIT,_p))
239# define _iswcntrl_l(_c,_p) (_iswctype_l(_c,_CONTROL,_p))246# define _iswcntrl_l(_c,_p) (_iswctype_l(_c,_CONTROL,_p))
240#endif /* __MSVCRT_VERSION__ >= 0x800 */247#endif /* __MSVCRT_VERSION__ >= 0x800 */
248#if __MSVCRT_VERSION__ >= 0xC00
249#define _iswblank_l(_c,_p) (_iswctype_l(_c,_BLANK,_p) || ((_c)=='\t'))
241#endif250#endif
251#endif /* __cplusplus */
242#endif252#endif
243253
244#define __iscsymf(_c) (isalpha(_c) || ((_c)=='_'))254#define __iscsymf(_c) (isalpha(_c) || ((_c)=='_'))
...@@ -253,10 +263,10 @@ _CRTIMP int __cdecl ___mb_cur_max_func(void);...@@ -253,10 +263,10 @@ _CRTIMP int __cdecl ___mb_cur_max_func(void);
253263
254#ifndef NO_OLDNAMES264#ifndef NO_OLDNAMES
255#ifndef _CTYPE_DEFINED265#ifndef _CTYPE_DEFINED
256 int __cdecl isascii(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;266 _CRTIMP int __cdecl isascii(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
257 int __cdecl toascii(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;267 _CRTIMP int __cdecl toascii(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
258 int __cdecl iscsymf(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;268 _CRTIMP int __cdecl iscsymf(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
259 int __cdecl iscsym(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;269 _CRTIMP int __cdecl iscsym(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
260#else270#else
261#define isascii __isascii271#define isascii __isascii
262#define toascii __toascii272#define toascii __toascii
lib/libc/include/any-windows-any/d3d10.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d10.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d10.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d10_1.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d10_1.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d10_1.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d10effect.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d10effect.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d10effect.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d10sdklayers.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d10sdklayers.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d10sdklayers.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d10shader.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d10shader.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d10shader.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d11.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d11.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11_1.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d11_1.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d11_1.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11_2.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d11_2.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d11_2.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11_3.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d11_3.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d11_3.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11_4.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d11_4.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d11_4.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11on12.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d11on12.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d11on12.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11sdklayers.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d11sdklayers.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d11sdklayers.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d12.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d12.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d12.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d12sdklayers.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d12sdklayers.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d12sdklayers.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d12shader.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d12shader.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d12shader.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d12video.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3d12video.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3d12video.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3dcommon.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/d3dcommon.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/d3dcommon.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dbgprop.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dbgprop.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dbgprop.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dcommon.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dcommon.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dcommon.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dcompanimation.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dcompanimation.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dcompanimation.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/ddstream.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/ddstream.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/ddstream.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/devicetopology.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/devicetopology.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/devicetopology.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dimm.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dimm.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dimm.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dinputd.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dinputd.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dinputd.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/direct.h+33
...@@ -25,10 +25,23 @@ extern "C" {...@@ -25,10 +25,23 @@ extern "C" {
25 };25 };
26#endif26#endif
2727
28#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
29#pragma push_macro("_getcwd")
30#undef _getcwd
31#pragma push_macro("_getdcwd")
32#undef _getdcwd
33#pragma push_macro("_getdcwd_nolock")
34#undef _getdcwd_nolock
35#endif
28 _CRTIMP char *__cdecl _getcwd(char *_DstBuf,int _SizeInBytes);36 _CRTIMP char *__cdecl _getcwd(char *_DstBuf,int _SizeInBytes);
29 _CRTIMP char *__cdecl _getdcwd(int _Drive,char *_DstBuf,int _SizeInBytes);37 _CRTIMP char *__cdecl _getdcwd(int _Drive,char *_DstBuf,int _SizeInBytes);
30#if __MSVCRT_VERSION__ >= 0x80038#if __MSVCRT_VERSION__ >= 0x800
31 char *__cdecl _getdcwd_nolock(int _Drive,char *_DstBuf,int _SizeInBytes);39 char *__cdecl _getdcwd_nolock(int _Drive,char *_DstBuf,int _SizeInBytes);
40#endif
41#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
42#pragma pop_macro("_getcwd")
43#pragma pop_macro("_getdcwd")
44#pragma pop_macro("_getdcwd_nolock")
32#endif45#endif
33 _CRTIMP int __cdecl _chdir(const char *_Path);46 _CRTIMP int __cdecl _chdir(const char *_Path);
34 _CRTIMP int __cdecl _mkdir(const char *_Path);47 _CRTIMP int __cdecl _mkdir(const char *_Path);
...@@ -46,10 +59,23 @@ extern "C" {...@@ -46,10 +59,23 @@ extern "C" {
4659
47#ifndef _WDIRECT_DEFINED60#ifndef _WDIRECT_DEFINED
48#define _WDIRECT_DEFINED61#define _WDIRECT_DEFINED
62#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
63#pragma push_macro("_wgetcwd")
64#undef _wgetcwd
65#pragma push_macro("_wgetdcwd")
66#undef _wgetdcwd
67#pragma push_macro("_wgetdcwd_nolock")
68#undef _wgetdcwd_nolock
69#endif
49 _CRTIMP wchar_t *__cdecl _wgetcwd(wchar_t *_DstBuf,int _SizeInWords);70 _CRTIMP wchar_t *__cdecl _wgetcwd(wchar_t *_DstBuf,int _SizeInWords);
50 _CRTIMP wchar_t *__cdecl _wgetdcwd(int _Drive,wchar_t *_DstBuf,int _SizeInWords);71 _CRTIMP wchar_t *__cdecl _wgetdcwd(int _Drive,wchar_t *_DstBuf,int _SizeInWords);
51#if __MSVCRT_VERSION__ >= 0x80072#if __MSVCRT_VERSION__ >= 0x800
52 wchar_t *__cdecl _wgetdcwd_nolock(int _Drive,wchar_t *_DstBuf,int _SizeInWords);73 wchar_t *__cdecl _wgetdcwd_nolock(int _Drive,wchar_t *_DstBuf,int _SizeInWords);
74#endif
75#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
76#pragma pop_macro("_wgetcwd")
77#pragma pop_macro("_wgetdcwd")
78#pragma pop_macro("_wgetdcwd_nolock")
53#endif79#endif
54 _CRTIMP int __cdecl _wchdir(const wchar_t *_Path);80 _CRTIMP int __cdecl _wchdir(const wchar_t *_Path);
55 _CRTIMP int __cdecl _wmkdir(const wchar_t *_Path);81 _CRTIMP int __cdecl _wmkdir(const wchar_t *_Path);
...@@ -60,7 +86,14 @@ extern "C" {...@@ -60,7 +86,14 @@ extern "C" {
6086
61#define diskfree_t _diskfree_t87#define diskfree_t _diskfree_t
6288
89#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
90#pragma push_macro("getcwd")
91#undef getcwd
92#endif
63 char *__cdecl getcwd(char *_DstBuf,int _SizeInBytes) __MINGW_ATTRIB_DEPRECATED_MSVC2005;93 char *__cdecl getcwd(char *_DstBuf,int _SizeInBytes) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
94#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
95#pragma pop_macro("getcwd")
96#endif
64 int __cdecl chdir(const char *_Path) __MINGW_ATTRIB_DEPRECATED_MSVC2005;97 int __cdecl chdir(const char *_Path) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
65 int __cdecl mkdir(const char *_Path) __MINGW_ATTRIB_DEPRECATED_MSVC2005;98 int __cdecl mkdir(const char *_Path) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
66 int __cdecl rmdir(const char *_Path) __MINGW_ATTRIB_DEPRECATED_MSVC2005;99 int __cdecl rmdir(const char *_Path) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
lib/libc/include/any-windows-any/directmanipulation.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/directmanipulation.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/directmanipulation.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dispex.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dispex.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dispex.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dmodshow.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dmodshow.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dmodshow.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/docobj.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/docobj.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/docobj.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/docobjectservice.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/docobjectservice.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/docobjectservice.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/documenttarget.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/documenttarget.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/documenttarget.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/downloadmgr.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/downloadmgr.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/downloadmgr.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/drmexternals.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/drmexternals.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/drmexternals.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dvdif.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dvdif.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dvdif.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dwrite.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dwrite.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dwrite.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dwrite_1.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dwrite_1.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dwrite_1.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dwrite_2.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dwrite_2.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dwrite_2.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dwrite_3.h+1053-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dwrite_3.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dwrite_3.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
...@@ -378,6 +378,30 @@ interface IDWriteFactory7;...@@ -378,6 +378,30 @@ interface IDWriteFactory7;
378#endif /* __cplusplus */378#endif /* __cplusplus */
379#endif379#endif
380380
381#ifndef __IDWriteFactory8_FWD_DEFINED__
382#define __IDWriteFactory8_FWD_DEFINED__
383typedef interface IDWriteFactory8 IDWriteFactory8;
384#ifdef __cplusplus
385interface IDWriteFactory8;
386#endif /* __cplusplus */
387#endif
388
389#ifndef __IDWriteBitmapRenderTarget2_FWD_DEFINED__
390#define __IDWriteBitmapRenderTarget2_FWD_DEFINED__
391typedef interface IDWriteBitmapRenderTarget2 IDWriteBitmapRenderTarget2;
392#ifdef __cplusplus
393interface IDWriteBitmapRenderTarget2;
394#endif /* __cplusplus */
395#endif
396
397#ifndef __IDWriteBitmapRenderTarget3_FWD_DEFINED__
398#define __IDWriteBitmapRenderTarget3_FWD_DEFINED__
399typedef interface IDWriteBitmapRenderTarget3 IDWriteBitmapRenderTarget3;
400#ifdef __cplusplus
401interface IDWriteBitmapRenderTarget3;
402#endif /* __cplusplus */
403#endif
404
381/* Headers for imported files */405/* Headers for imported files */
382406
383#include <dwrite_2.h>407#include <dwrite_2.h>
...@@ -571,11 +595,14 @@ typedef enum DWRITE_PAINT_TYPE {...@@ -571,11 +595,14 @@ typedef enum DWRITE_PAINT_TYPE {
571 DWRITE_PAINT_TYPE_TRANSFORM = 9,595 DWRITE_PAINT_TYPE_TRANSFORM = 9,
572 DWRITE_PAINT_TYPE_COMPOSITE = 10596 DWRITE_PAINT_TYPE_COMPOSITE = 10
573} DWRITE_PAINT_TYPE;597} DWRITE_PAINT_TYPE;
598#ifndef DWRITE_PAINT_FEATURE_LEVEL_DEFINED
599#define DWRITE_PAINT_FEATURE_LEVEL_DEFINED
574typedef enum DWRITE_PAINT_FEATURE_LEVEL {600typedef enum DWRITE_PAINT_FEATURE_LEVEL {
575 DWRITE_PAINT_FEATURE_LEVEL_NONE = 0,601 DWRITE_PAINT_FEATURE_LEVEL_NONE = 0,
576 DWRITE_PAINT_FEATURE_LEVEL_COLR_V0 = 1,602 DWRITE_PAINT_FEATURE_LEVEL_COLR_V0 = 1,
577 DWRITE_PAINT_FEATURE_LEVEL_COLR_V1 = 2603 DWRITE_PAINT_FEATURE_LEVEL_COLR_V1 = 2
578} DWRITE_PAINT_FEATURE_LEVEL;604} DWRITE_PAINT_FEATURE_LEVEL;
605#endif /* DWRITE_PAINT_FEATURE_LEVEL_DEFINED */
579typedef enum DWRITE_PAINT_ATTRIBUTES {606typedef enum DWRITE_PAINT_ATTRIBUTES {
580 DWRITE_PAINT_ATTRIBUTES_NONE = 0,607 DWRITE_PAINT_ATTRIBUTES_NONE = 0,
581 DWRITE_PAINT_ATTRIBUTES_USES_PALETTE = 0x1,608 DWRITE_PAINT_ATTRIBUTES_USES_PALETTE = 0x1,
...@@ -14125,6 +14152,1031 @@ static inline HRESULT IDWriteFactory7_GetSystemFontCollection(IDWriteFactory7* T...@@ -14125,6 +14152,1031 @@ static inline HRESULT IDWriteFactory7_GetSystemFontCollection(IDWriteFactory7* T
1412514152
14126#endif /* __IDWriteFactory7_INTERFACE_DEFINED__ */14153#endif /* __IDWriteFactory7_INTERFACE_DEFINED__ */
1412714154
14155/*****************************************************************************
14156 * IDWriteFactory8 interface
14157 */
14158#ifndef __IDWriteFactory8_INTERFACE_DEFINED__
14159#define __IDWriteFactory8_INTERFACE_DEFINED__
14160
14161DEFINE_GUID(IID_IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98);
14162#if defined(__cplusplus) && !defined(CINTERFACE)
14163MIDL_INTERFACE("ee0a7fb5-def4-4c23-a454-c9c7dc878398")
14164IDWriteFactory8 : public IDWriteFactory7
14165{
14166 virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun(
14167 D2D1_POINT_2F origin,
14168 const DWRITE_GLYPH_RUN *glyph_run,
14169 const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,
14170 DWRITE_GLYPH_IMAGE_FORMATS image_formats,
14171 DWRITE_PAINT_FEATURE_LEVEL feature_level,
14172 DWRITE_MEASURING_MODE measuring_mode,
14173 const DWRITE_MATRIX *world_and_dpi_transform,
14174 UINT32 palette_index,
14175 IDWriteColorGlyphRunEnumerator1 **enumerator) = 0;
14176
14177};
14178#ifdef __CRT_UUID_DECL
14179__CRT_UUID_DECL(IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98)
14180#endif
14181#else
14182typedef struct IDWriteFactory8Vtbl {
14183 BEGIN_INTERFACE
14184
14185 /*** IUnknown methods ***/
14186 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14187 IDWriteFactory8 *This,
14188 REFIID riid,
14189 void **ppvObject);
14190
14191 ULONG (STDMETHODCALLTYPE *AddRef)(
14192 IDWriteFactory8 *This);
14193
14194 ULONG (STDMETHODCALLTYPE *Release)(
14195 IDWriteFactory8 *This);
14196
14197 /*** IDWriteFactory methods ***/
14198 HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
14199 IDWriteFactory8 *This,
14200 IDWriteFontCollection **collection,
14201 WINBOOL check_for_updates);
14202
14203 HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
14204 IDWriteFactory8 *This,
14205 IDWriteFontCollectionLoader *loader,
14206 const void *key,
14207 UINT32 key_size,
14208 IDWriteFontCollection **collection);
14209
14210 HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
14211 IDWriteFactory8 *This,
14212 IDWriteFontCollectionLoader *loader);
14213
14214 HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
14215 IDWriteFactory8 *This,
14216 IDWriteFontCollectionLoader *loader);
14217
14218 HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
14219 IDWriteFactory8 *This,
14220 const WCHAR *path,
14221 const FILETIME *writetime,
14222 IDWriteFontFile **font_file);
14223
14224 HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
14225 IDWriteFactory8 *This,
14226 const void *reference_key,
14227 UINT32 key_size,
14228 IDWriteFontFileLoader *loader,
14229 IDWriteFontFile **font_file);
14230
14231 HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
14232 IDWriteFactory8 *This,
14233 DWRITE_FONT_FACE_TYPE facetype,
14234 UINT32 files_number,
14235 IDWriteFontFile *const *font_files,
14236 UINT32 index,
14237 DWRITE_FONT_SIMULATIONS sim_flags,
14238 IDWriteFontFace **font_face);
14239
14240 HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
14241 IDWriteFactory8 *This,
14242 IDWriteRenderingParams **params);
14243
14244 HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
14245 IDWriteFactory8 *This,
14246 HMONITOR monitor,
14247 IDWriteRenderingParams **params);
14248
14249 HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
14250 IDWriteFactory8 *This,
14251 FLOAT gamma,
14252 FLOAT enhancedContrast,
14253 FLOAT cleartype_level,
14254 DWRITE_PIXEL_GEOMETRY geometry,
14255 DWRITE_RENDERING_MODE mode,
14256 IDWriteRenderingParams **params);
14257
14258 HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
14259 IDWriteFactory8 *This,
14260 IDWriteFontFileLoader *loader);
14261
14262 HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
14263 IDWriteFactory8 *This,
14264 IDWriteFontFileLoader *loader);
14265
14266 HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
14267 IDWriteFactory8 *This,
14268 const WCHAR *family_name,
14269 IDWriteFontCollection *collection,
14270 DWRITE_FONT_WEIGHT weight,
14271 DWRITE_FONT_STYLE style,
14272 DWRITE_FONT_STRETCH stretch,
14273 FLOAT size,
14274 const WCHAR *locale,
14275 IDWriteTextFormat **format);
14276
14277 HRESULT (STDMETHODCALLTYPE *CreateTypography)(
14278 IDWriteFactory8 *This,
14279 IDWriteTypography **typography);
14280
14281 HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
14282 IDWriteFactory8 *This,
14283 IDWriteGdiInterop **gdi_interop);
14284
14285 HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
14286 IDWriteFactory8 *This,
14287 const WCHAR *string,
14288 UINT32 len,
14289 IDWriteTextFormat *format,
14290 FLOAT max_width,
14291 FLOAT max_height,
14292 IDWriteTextLayout **layout);
14293
14294 HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
14295 IDWriteFactory8 *This,
14296 const WCHAR *string,
14297 UINT32 len,
14298 IDWriteTextFormat *format,
14299 FLOAT layout_width,
14300 FLOAT layout_height,
14301 FLOAT pixels_per_dip,
14302 const DWRITE_MATRIX *transform,
14303 WINBOOL use_gdi_natural,
14304 IDWriteTextLayout **layout);
14305
14306 HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
14307 IDWriteFactory8 *This,
14308 IDWriteTextFormat *format,
14309 IDWriteInlineObject **trimming_sign);
14310
14311 HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
14312 IDWriteFactory8 *This,
14313 IDWriteTextAnalyzer **analyzer);
14314
14315 HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
14316 IDWriteFactory8 *This,
14317 DWRITE_NUMBER_SUBSTITUTION_METHOD method,
14318 const WCHAR *locale,
14319 WINBOOL ignore_user_override,
14320 IDWriteNumberSubstitution **substitution);
14321
14322 HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
14323 IDWriteFactory8 *This,
14324 const DWRITE_GLYPH_RUN *glyph_run,
14325 FLOAT pixels_per_dip,
14326 const DWRITE_MATRIX *transform,
14327 DWRITE_RENDERING_MODE rendering_mode,
14328 DWRITE_MEASURING_MODE measuring_mode,
14329 FLOAT baseline_x,
14330 FLOAT baseline_y,
14331 IDWriteGlyphRunAnalysis **analysis);
14332
14333 /*** IDWriteFactory1 methods ***/
14334 HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
14335 IDWriteFactory8 *This,
14336 IDWriteFontCollection **collection,
14337 WINBOOL check_for_updates);
14338
14339 HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
14340 IDWriteFactory8 *This,
14341 FLOAT gamma,
14342 FLOAT enhcontrast,
14343 FLOAT enhcontrast_grayscale,
14344 FLOAT cleartype_level,
14345 DWRITE_PIXEL_GEOMETRY geometry,
14346 DWRITE_RENDERING_MODE mode,
14347 IDWriteRenderingParams1 **params);
14348
14349 /*** IDWriteFactory2 methods ***/
14350 HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
14351 IDWriteFactory8 *This,
14352 IDWriteFontFallback **fallback);
14353
14354 HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
14355 IDWriteFactory8 *This,
14356 IDWriteFontFallbackBuilder **fallbackbuilder);
14357
14358 HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
14359 IDWriteFactory8 *This,
14360 FLOAT originX,
14361 FLOAT originY,
14362 const DWRITE_GLYPH_RUN *run,
14363 const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
14364 DWRITE_MEASURING_MODE mode,
14365 const DWRITE_MATRIX *transform,
14366 UINT32 palette_index,
14367 IDWriteColorGlyphRunEnumerator **colorlayers);
14368
14369 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
14370 IDWriteFactory8 *This,
14371 FLOAT gamma,
14372 FLOAT contrast,
14373 FLOAT grayscalecontrast,
14374 FLOAT cleartypeLevel,
14375 DWRITE_PIXEL_GEOMETRY pixelGeometry,
14376 DWRITE_RENDERING_MODE renderingMode,
14377 DWRITE_GRID_FIT_MODE gridFitMode,
14378 IDWriteRenderingParams2 **params);
14379
14380 HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
14381 IDWriteFactory8 *This,
14382 const DWRITE_GLYPH_RUN *run,
14383 const DWRITE_MATRIX *transform,
14384 DWRITE_RENDERING_MODE renderingMode,
14385 DWRITE_MEASURING_MODE measuringMode,
14386 DWRITE_GRID_FIT_MODE gridFitMode,
14387 DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
14388 FLOAT originX,
14389 FLOAT originY,
14390 IDWriteGlyphRunAnalysis **analysis);
14391
14392 /*** IDWriteFactory3 methods ***/
14393 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
14394 IDWriteFactory8 *This,
14395 const DWRITE_GLYPH_RUN *run,
14396 const DWRITE_MATRIX *transform,
14397 DWRITE_RENDERING_MODE1 rendering_mode,
14398 DWRITE_MEASURING_MODE measuring_mode,
14399 DWRITE_GRID_FIT_MODE gridfit_mode,
14400 DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
14401 FLOAT origin_x,
14402 FLOAT origin_y,
14403 IDWriteGlyphRunAnalysis **analysis);
14404
14405 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
14406 IDWriteFactory8 *This,
14407 FLOAT gamma,
14408 FLOAT enhanced_contrast,
14409 FLOAT grayscale_enhanced_contrast,
14410 FLOAT cleartype_level,
14411 DWRITE_PIXEL_GEOMETRY pixel_geometry,
14412 DWRITE_RENDERING_MODE1 rendering_mode,
14413 DWRITE_GRID_FIT_MODE gridfit_mode,
14414 IDWriteRenderingParams3 **params);
14415
14416 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
14417 IDWriteFactory8 *This,
14418 IDWriteFontFile *file,
14419 UINT32 index,
14420 DWRITE_FONT_SIMULATIONS simulations,
14421 IDWriteFontFaceReference **reference);
14422
14423 HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
14424 IDWriteFactory8 *This,
14425 const WCHAR *path,
14426 const FILETIME *writetime,
14427 UINT32 index,
14428 DWRITE_FONT_SIMULATIONS simulations,
14429 IDWriteFontFaceReference **reference);
14430
14431 HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
14432 IDWriteFactory8 *This,
14433 IDWriteFontSet **fontset);
14434
14435 HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
14436 IDWriteFactory8 *This,
14437 IDWriteFontSetBuilder **builder);
14438
14439 HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
14440 IDWriteFactory8 *This,
14441 IDWriteFontSet *fontset,
14442 IDWriteFontCollection1 **collection);
14443
14444 HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
14445 IDWriteFactory8 *This,
14446 WINBOOL include_downloadable,
14447 IDWriteFontCollection1 **collection,
14448 WINBOOL check_for_updates);
14449
14450 HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
14451 IDWriteFactory8 *This,
14452 IDWriteFontDownloadQueue **queue);
14453
14454 /*** IDWriteFactory4 methods ***/
14455 HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
14456 IDWriteFactory8 *This,
14457 D2D1_POINT_2F baseline_origin,
14458 const DWRITE_GLYPH_RUN *run,
14459 const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
14460 DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
14461 DWRITE_MEASURING_MODE measuring_mode,
14462 const DWRITE_MATRIX *transform,
14463 UINT32 palette,
14464 IDWriteColorGlyphRunEnumerator1 **layers);
14465
14466 HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
14467 IDWriteFactory8 *This,
14468 const DWRITE_GLYPH_RUN *run,
14469 D2D1_POINT_2F baseline_origin,
14470 D2D1_POINT_2F *origins);
14471
14472 HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
14473 IDWriteFactory8 *This,
14474 const DWRITE_GLYPH_RUN *run,
14475 DWRITE_MEASURING_MODE measuring_mode,
14476 D2D1_POINT_2F baseline_origin,
14477 const DWRITE_MATRIX *transform,
14478 D2D1_POINT_2F *origins);
14479
14480 /*** IDWriteFactory5 methods ***/
14481 HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
14482 IDWriteFactory8 *This,
14483 IDWriteFontSetBuilder1 **fontset_builder);
14484
14485 HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
14486 IDWriteFactory8 *This,
14487 IDWriteInMemoryFontFileLoader **loader);
14488
14489 HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
14490 IDWriteFactory8 *This,
14491 const WCHAR *referrer_url,
14492 const WCHAR *extra_headers,
14493 IDWriteRemoteFontFileLoader **loader);
14494
14495 DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
14496 IDWriteFactory8 *This,
14497 const void *data,
14498 UINT32 data_size);
14499
14500 HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
14501 IDWriteFactory8 *This,
14502 DWRITE_CONTAINER_TYPE container_type,
14503 const void *data,
14504 UINT32 data_size,
14505 IDWriteFontFileStream **stream);
14506
14507 /*** IDWriteFactory6 methods ***/
14508 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)(
14509 IDWriteFactory8 *This,
14510 IDWriteFontFile *file,
14511 UINT32 face_index,
14512 DWRITE_FONT_SIMULATIONS simulations,
14513 const DWRITE_FONT_AXIS_VALUE *axis_values,
14514 UINT32 num_axis,
14515 IDWriteFontFaceReference1 **face_ref);
14516
14517 HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
14518 IDWriteFactory8 *This,
14519 IDWriteFontFile *file,
14520 UINT32 face_index,
14521 IDWriteFontResource **resource);
14522
14523 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)(
14524 IDWriteFactory8 *This,
14525 WINBOOL include_downloadable,
14526 IDWriteFontSet1 **fontset);
14527
14528 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)(
14529 IDWriteFactory8 *This,
14530 WINBOOL include_downloadable,
14531 DWRITE_FONT_FAMILY_MODEL family_model,
14532 IDWriteFontCollection2 **collection);
14533
14534 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)(
14535 IDWriteFactory8 *This,
14536 IDWriteFontSet *fontset,
14537 DWRITE_FONT_FAMILY_MODEL family_model,
14538 IDWriteFontCollection2 **collection);
14539
14540 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)(
14541 IDWriteFactory8 *This,
14542 IDWriteFontSetBuilder2 **builder);
14543
14544 HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)(
14545 IDWriteFactory8 *This,
14546 const WCHAR *familyname,
14547 IDWriteFontCollection *collection,
14548 const DWRITE_FONT_AXIS_VALUE *axis_values,
14549 UINT32 num_axis,
14550 FLOAT fontsize,
14551 const WCHAR *localename,
14552 IDWriteTextFormat3 **format);
14553
14554 /*** IDWriteFactory7 methods ***/
14555 HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)(
14556 IDWriteFactory8 *This,
14557 WINBOOL include_downloadable,
14558 IDWriteFontSet2 **fontset);
14559
14560 HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)(
14561 IDWriteFactory8 *This,
14562 WINBOOL include_downloadable,
14563 DWRITE_FONT_FAMILY_MODEL family_model,
14564 IDWriteFontCollection3 **collection);
14565
14566 /*** IDWriteFactory8 methods ***/
14567 HRESULT (STDMETHODCALLTYPE *IDWriteFactory8_TranslateColorGlyphRun)(
14568 IDWriteFactory8 *This,
14569 D2D1_POINT_2F origin,
14570 const DWRITE_GLYPH_RUN *glyph_run,
14571 const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,
14572 DWRITE_GLYPH_IMAGE_FORMATS image_formats,
14573 DWRITE_PAINT_FEATURE_LEVEL feature_level,
14574 DWRITE_MEASURING_MODE measuring_mode,
14575 const DWRITE_MATRIX *world_and_dpi_transform,
14576 UINT32 palette_index,
14577 IDWriteColorGlyphRunEnumerator1 **enumerator);
14578
14579 END_INTERFACE
14580} IDWriteFactory8Vtbl;
14581
14582interface IDWriteFactory8 {
14583 CONST_VTBL IDWriteFactory8Vtbl* lpVtbl;
14584};
14585
14586#ifdef COBJMACROS
14587#ifndef WIDL_C_INLINE_WRAPPERS
14588/*** IUnknown methods ***/
14589#define IDWriteFactory8_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14590#define IDWriteFactory8_AddRef(This) (This)->lpVtbl->AddRef(This)
14591#define IDWriteFactory8_Release(This) (This)->lpVtbl->Release(This)
14592/*** IDWriteFactory methods ***/
14593#define IDWriteFactory8_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
14594#define IDWriteFactory8_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
14595#define IDWriteFactory8_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
14596#define IDWriteFactory8_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
14597#define IDWriteFactory8_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
14598#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)
14599#define IDWriteFactory8_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
14600#define IDWriteFactory8_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
14601#define IDWriteFactory8_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
14602#define IDWriteFactory8_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
14603#define IDWriteFactory8_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
14604#define IDWriteFactory8_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
14605#define IDWriteFactory8_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
14606#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)
14607#define IDWriteFactory8_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
14608#define IDWriteFactory8_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
14609#define IDWriteFactory8_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
14610/*** IDWriteFactory1 methods ***/
14611#define IDWriteFactory8_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
14612/*** IDWriteFactory2 methods ***/
14613#define IDWriteFactory8_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
14614#define IDWriteFactory8_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
14615/*** IDWriteFactory3 methods ***/
14616#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)
14617#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)
14618#define IDWriteFactory8_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
14619#define IDWriteFactory8_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
14620/*** IDWriteFactory4 methods ***/
14621#define IDWriteFactory8_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
14622#define IDWriteFactory8_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
14623/*** IDWriteFactory5 methods ***/
14624#define IDWriteFactory8_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
14625#define IDWriteFactory8_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
14626#define IDWriteFactory8_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
14627#define IDWriteFactory8_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
14628/*** IDWriteFactory6 methods ***/
14629#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)
14630#define IDWriteFactory8_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource)
14631#define IDWriteFactory8_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection)
14632#define IDWriteFactory8_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder)
14633#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)
14634/*** IDWriteFactory7 methods ***/
14635#define IDWriteFactory8_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset)
14636#define IDWriteFactory8_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection)
14637/*** IDWriteFactory8 methods ***/
14638#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)
14639#else
14640/*** IUnknown methods ***/
14641static inline HRESULT IDWriteFactory8_QueryInterface(IDWriteFactory8* This,REFIID riid,void **ppvObject) {
14642 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14643}
14644static inline ULONG IDWriteFactory8_AddRef(IDWriteFactory8* This) {
14645 return This->lpVtbl->AddRef(This);
14646}
14647static inline ULONG IDWriteFactory8_Release(IDWriteFactory8* This) {
14648 return This->lpVtbl->Release(This);
14649}
14650/*** IDWriteFactory methods ***/
14651static inline HRESULT IDWriteFactory8_CreateCustomFontCollection(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
14652 return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
14653}
14654static inline HRESULT IDWriteFactory8_RegisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) {
14655 return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
14656}
14657static inline HRESULT IDWriteFactory8_UnregisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) {
14658 return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
14659}
14660static inline HRESULT IDWriteFactory8_CreateFontFileReference(IDWriteFactory8* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
14661 return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
14662}
14663static inline HRESULT IDWriteFactory8_CreateCustomFontFileReference(IDWriteFactory8* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
14664 return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
14665}
14666static 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) {
14667 return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
14668}
14669static inline HRESULT IDWriteFactory8_CreateRenderingParams(IDWriteFactory8* This,IDWriteRenderingParams **params) {
14670 return This->lpVtbl->CreateRenderingParams(This,params);
14671}
14672static inline HRESULT IDWriteFactory8_CreateMonitorRenderingParams(IDWriteFactory8* This,HMONITOR monitor,IDWriteRenderingParams **params) {
14673 return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
14674}
14675static inline HRESULT IDWriteFactory8_RegisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) {
14676 return This->lpVtbl->RegisterFontFileLoader(This,loader);
14677}
14678static inline HRESULT IDWriteFactory8_UnregisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) {
14679 return This->lpVtbl->UnregisterFontFileLoader(This,loader);
14680}
14681static inline HRESULT IDWriteFactory8_CreateTypography(IDWriteFactory8* This,IDWriteTypography **typography) {
14682 return This->lpVtbl->CreateTypography(This,typography);
14683}
14684static inline HRESULT IDWriteFactory8_GetGdiInterop(IDWriteFactory8* This,IDWriteGdiInterop **gdi_interop) {
14685 return This->lpVtbl->GetGdiInterop(This,gdi_interop);
14686}
14687static inline HRESULT IDWriteFactory8_CreateTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
14688 return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
14689}
14690static 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) {
14691 return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
14692}
14693static inline HRESULT IDWriteFactory8_CreateEllipsisTrimmingSign(IDWriteFactory8* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
14694 return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
14695}
14696static inline HRESULT IDWriteFactory8_CreateTextAnalyzer(IDWriteFactory8* This,IDWriteTextAnalyzer **analyzer) {
14697 return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
14698}
14699static inline HRESULT IDWriteFactory8_CreateNumberSubstitution(IDWriteFactory8* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
14700 return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
14701}
14702/*** IDWriteFactory1 methods ***/
14703static inline HRESULT IDWriteFactory8_GetEudcFontCollection(IDWriteFactory8* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
14704 return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
14705}
14706/*** IDWriteFactory2 methods ***/
14707static inline HRESULT IDWriteFactory8_GetSystemFontFallback(IDWriteFactory8* This,IDWriteFontFallback **fallback) {
14708 return This->lpVtbl->GetSystemFontFallback(This,fallback);
14709}
14710static inline HRESULT IDWriteFactory8_CreateFontFallbackBuilder(IDWriteFactory8* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
14711 return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
14712}
14713/*** IDWriteFactory3 methods ***/
14714static 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) {
14715 return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
14716}
14717static 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) {
14718 return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
14719}
14720static inline HRESULT IDWriteFactory8_CreateFontFaceReference_(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
14721 return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
14722}
14723static inline HRESULT IDWriteFactory8_GetFontDownloadQueue(IDWriteFactory8* This,IDWriteFontDownloadQueue **queue) {
14724 return This->lpVtbl->GetFontDownloadQueue(This,queue);
14725}
14726/*** IDWriteFactory4 methods ***/
14727static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins_(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
14728 return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
14729}
14730static 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) {
14731 return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
14732}
14733/*** IDWriteFactory5 methods ***/
14734static inline HRESULT IDWriteFactory8_CreateInMemoryFontFileLoader(IDWriteFactory8* This,IDWriteInMemoryFontFileLoader **loader) {
14735 return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
14736}
14737static inline HRESULT IDWriteFactory8_CreateHttpFontFileLoader(IDWriteFactory8* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
14738 return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
14739}
14740static inline DWRITE_CONTAINER_TYPE IDWriteFactory8_AnalyzeContainerType(IDWriteFactory8* This,const void *data,UINT32 data_size) {
14741 return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
14742}
14743static inline HRESULT IDWriteFactory8_UnpackFontFile(IDWriteFactory8* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
14744 return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
14745}
14746/*** IDWriteFactory6 methods ***/
14747static 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) {
14748 return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref);
14749}
14750static inline HRESULT IDWriteFactory8_CreateFontResource(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) {
14751 return This->lpVtbl->CreateFontResource(This,file,face_index,resource);
14752}
14753static inline HRESULT IDWriteFactory8_CreateFontCollectionFromFontSet(IDWriteFactory8* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
14754 return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection);
14755}
14756static inline HRESULT IDWriteFactory8_CreateFontSetBuilder(IDWriteFactory8* This,IDWriteFontSetBuilder2 **builder) {
14757 return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder);
14758}
14759static 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) {
14760 return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format);
14761}
14762/*** IDWriteFactory7 methods ***/
14763static inline HRESULT IDWriteFactory8_GetSystemFontSet(IDWriteFactory8* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) {
14764 return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset);
14765}
14766static inline HRESULT IDWriteFactory8_GetSystemFontCollection(IDWriteFactory8* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) {
14767 return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection);
14768}
14769/*** IDWriteFactory8 methods ***/
14770static 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) {
14771 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);
14772}
14773#endif
14774#endif
14775
14776#endif
14777
14778
14779#endif /* __IDWriteFactory8_INTERFACE_DEFINED__ */
14780
14781typedef struct DWRITE_BITMAP_DATA_BGRA32 {
14782 UINT32 width;
14783 UINT32 height;
14784 UINT32 *pixels;
14785} DWRITE_BITMAP_DATA_BGRA32;
14786/*****************************************************************************
14787 * IDWriteBitmapRenderTarget2 interface
14788 */
14789#ifndef __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__
14790#define __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__
14791
14792DEFINE_GUID(IID_IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95);
14793#if defined(__cplusplus) && !defined(CINTERFACE)
14794MIDL_INTERFACE("c553a742-fc01-44da-a66e-b8b9ed6c3995")
14795IDWriteBitmapRenderTarget2 : public IDWriteBitmapRenderTarget1
14796{
14797 virtual HRESULT STDMETHODCALLTYPE GetBitmapData(
14798 DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) = 0;
14799
14800};
14801#ifdef __CRT_UUID_DECL
14802__CRT_UUID_DECL(IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95)
14803#endif
14804#else
14805typedef struct IDWriteBitmapRenderTarget2Vtbl {
14806 BEGIN_INTERFACE
14807
14808 /*** IUnknown methods ***/
14809 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14810 IDWriteBitmapRenderTarget2 *This,
14811 REFIID riid,
14812 void **ppvObject);
14813
14814 ULONG (STDMETHODCALLTYPE *AddRef)(
14815 IDWriteBitmapRenderTarget2 *This);
14816
14817 ULONG (STDMETHODCALLTYPE *Release)(
14818 IDWriteBitmapRenderTarget2 *This);
14819
14820 /*** IDWriteBitmapRenderTarget methods ***/
14821 HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)(
14822 IDWriteBitmapRenderTarget2 *This,
14823 FLOAT baselineOriginX,
14824 FLOAT baselineOriginY,
14825 DWRITE_MEASURING_MODE measuring_mode,
14826 const DWRITE_GLYPH_RUN *glyph_run,
14827 IDWriteRenderingParams *params,
14828 COLORREF textColor,
14829 RECT *blackbox_rect);
14830
14831 HDC (STDMETHODCALLTYPE *GetMemoryDC)(
14832 IDWriteBitmapRenderTarget2 *This);
14833
14834 FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)(
14835 IDWriteBitmapRenderTarget2 *This);
14836
14837 HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)(
14838 IDWriteBitmapRenderTarget2 *This,
14839 FLOAT pixels_per_dip);
14840
14841 HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
14842 IDWriteBitmapRenderTarget2 *This,
14843 DWRITE_MATRIX *transform);
14844
14845 HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)(
14846 IDWriteBitmapRenderTarget2 *This,
14847 const DWRITE_MATRIX *transform);
14848
14849 HRESULT (STDMETHODCALLTYPE *GetSize)(
14850 IDWriteBitmapRenderTarget2 *This,
14851 SIZE *size);
14852
14853 HRESULT (STDMETHODCALLTYPE *Resize)(
14854 IDWriteBitmapRenderTarget2 *This,
14855 UINT32 width,
14856 UINT32 height);
14857
14858 /*** IDWriteBitmapRenderTarget1 methods ***/
14859 DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)(
14860 IDWriteBitmapRenderTarget2 *This);
14861
14862 HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)(
14863 IDWriteBitmapRenderTarget2 *This,
14864 DWRITE_TEXT_ANTIALIAS_MODE mode);
14865
14866 /*** IDWriteBitmapRenderTarget2 methods ***/
14867 HRESULT (STDMETHODCALLTYPE *GetBitmapData)(
14868 IDWriteBitmapRenderTarget2 *This,
14869 DWRITE_BITMAP_DATA_BGRA32 *bitmap_data);
14870
14871 END_INTERFACE
14872} IDWriteBitmapRenderTarget2Vtbl;
14873
14874interface IDWriteBitmapRenderTarget2 {
14875 CONST_VTBL IDWriteBitmapRenderTarget2Vtbl* lpVtbl;
14876};
14877
14878#ifdef COBJMACROS
14879#ifndef WIDL_C_INLINE_WRAPPERS
14880/*** IUnknown methods ***/
14881#define IDWriteBitmapRenderTarget2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14882#define IDWriteBitmapRenderTarget2_AddRef(This) (This)->lpVtbl->AddRef(This)
14883#define IDWriteBitmapRenderTarget2_Release(This) (This)->lpVtbl->Release(This)
14884/*** IDWriteBitmapRenderTarget methods ***/
14885#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)
14886#define IDWriteBitmapRenderTarget2_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This)
14887#define IDWriteBitmapRenderTarget2_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This)
14888#define IDWriteBitmapRenderTarget2_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip)
14889#define IDWriteBitmapRenderTarget2_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform)
14890#define IDWriteBitmapRenderTarget2_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform)
14891#define IDWriteBitmapRenderTarget2_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
14892#define IDWriteBitmapRenderTarget2_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
14893/*** IDWriteBitmapRenderTarget1 methods ***/
14894#define IDWriteBitmapRenderTarget2_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This)
14895#define IDWriteBitmapRenderTarget2_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode)
14896/*** IDWriteBitmapRenderTarget2 methods ***/
14897#define IDWriteBitmapRenderTarget2_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data)
14898#else
14899/*** IUnknown methods ***/
14900static inline HRESULT IDWriteBitmapRenderTarget2_QueryInterface(IDWriteBitmapRenderTarget2* This,REFIID riid,void **ppvObject) {
14901 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14902}
14903static inline ULONG IDWriteBitmapRenderTarget2_AddRef(IDWriteBitmapRenderTarget2* This) {
14904 return This->lpVtbl->AddRef(This);
14905}
14906static inline ULONG IDWriteBitmapRenderTarget2_Release(IDWriteBitmapRenderTarget2* This) {
14907 return This->lpVtbl->Release(This);
14908}
14909/*** IDWriteBitmapRenderTarget methods ***/
14910static 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) {
14911 return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect);
14912}
14913static inline HDC IDWriteBitmapRenderTarget2_GetMemoryDC(IDWriteBitmapRenderTarget2* This) {
14914 return This->lpVtbl->GetMemoryDC(This);
14915}
14916static inline FLOAT IDWriteBitmapRenderTarget2_GetPixelsPerDip(IDWriteBitmapRenderTarget2* This) {
14917 return This->lpVtbl->GetPixelsPerDip(This);
14918}
14919static inline HRESULT IDWriteBitmapRenderTarget2_SetPixelsPerDip(IDWriteBitmapRenderTarget2* This,FLOAT pixels_per_dip) {
14920 return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip);
14921}
14922static inline HRESULT IDWriteBitmapRenderTarget2_GetCurrentTransform(IDWriteBitmapRenderTarget2* This,DWRITE_MATRIX *transform) {
14923 return This->lpVtbl->GetCurrentTransform(This,transform);
14924}
14925static inline HRESULT IDWriteBitmapRenderTarget2_SetCurrentTransform(IDWriteBitmapRenderTarget2* This,const DWRITE_MATRIX *transform) {
14926 return This->lpVtbl->SetCurrentTransform(This,transform);
14927}
14928static inline HRESULT IDWriteBitmapRenderTarget2_GetSize(IDWriteBitmapRenderTarget2* This,SIZE *size) {
14929 return This->lpVtbl->GetSize(This,size);
14930}
14931static inline HRESULT IDWriteBitmapRenderTarget2_Resize(IDWriteBitmapRenderTarget2* This,UINT32 width,UINT32 height) {
14932 return This->lpVtbl->Resize(This,width,height);
14933}
14934/*** IDWriteBitmapRenderTarget1 methods ***/
14935static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget2_GetTextAntialiasMode(IDWriteBitmapRenderTarget2* This) {
14936 return This->lpVtbl->GetTextAntialiasMode(This);
14937}
14938static inline HRESULT IDWriteBitmapRenderTarget2_SetTextAntialiasMode(IDWriteBitmapRenderTarget2* This,DWRITE_TEXT_ANTIALIAS_MODE mode) {
14939 return This->lpVtbl->SetTextAntialiasMode(This,mode);
14940}
14941/*** IDWriteBitmapRenderTarget2 methods ***/
14942static inline HRESULT IDWriteBitmapRenderTarget2_GetBitmapData(IDWriteBitmapRenderTarget2* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) {
14943 return This->lpVtbl->GetBitmapData(This,bitmap_data);
14944}
14945#endif
14946#endif
14947
14948#endif
14949
14950
14951#endif /* __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ */
14952
14953/*****************************************************************************
14954 * IDWriteBitmapRenderTarget3 interface
14955 */
14956#ifndef __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__
14957#define __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__
14958
14959DEFINE_GUID(IID_IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38);
14960#if defined(__cplusplus) && !defined(CINTERFACE)
14961MIDL_INTERFACE("aeec37db-c337-40f1-8e2a-9a41b167b238")
14962IDWriteBitmapRenderTarget3 : public IDWriteBitmapRenderTarget2
14963{
14964 virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel(
14965 ) = 0;
14966
14967 virtual HRESULT STDMETHODCALLTYPE DrawPaintGlyphRun(
14968 FLOAT origin_x,
14969 FLOAT origin_y,
14970 DWRITE_MEASURING_MODE measuring_mode,
14971 const DWRITE_GLYPH_RUN *run,
14972 DWRITE_GLYPH_IMAGE_FORMATS image_format,
14973 COLORREF text_color,
14974 UINT32 palette_index,
14975 RECT *black_box) = 0;
14976
14977 virtual HRESULT STDMETHODCALLTYPE DrawGlyphRunWithColorSupport(
14978 FLOAT origin_x,
14979 FLOAT origin_y,
14980 DWRITE_MEASURING_MODE measuring_mode,
14981 const DWRITE_GLYPH_RUN *run,
14982 IDWriteRenderingParams *params,
14983 COLORREF text_color,
14984 UINT32 palette_index,
14985 RECT *black_box) = 0;
14986
14987};
14988#ifdef __CRT_UUID_DECL
14989__CRT_UUID_DECL(IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38)
14990#endif
14991#else
14992typedef struct IDWriteBitmapRenderTarget3Vtbl {
14993 BEGIN_INTERFACE
14994
14995 /*** IUnknown methods ***/
14996 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14997 IDWriteBitmapRenderTarget3 *This,
14998 REFIID riid,
14999 void **ppvObject);
15000
15001 ULONG (STDMETHODCALLTYPE *AddRef)(
15002 IDWriteBitmapRenderTarget3 *This);
15003
15004 ULONG (STDMETHODCALLTYPE *Release)(
15005 IDWriteBitmapRenderTarget3 *This);
15006
15007 /*** IDWriteBitmapRenderTarget methods ***/
15008 HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)(
15009 IDWriteBitmapRenderTarget3 *This,
15010 FLOAT baselineOriginX,
15011 FLOAT baselineOriginY,
15012 DWRITE_MEASURING_MODE measuring_mode,
15013 const DWRITE_GLYPH_RUN *glyph_run,
15014 IDWriteRenderingParams *params,
15015 COLORREF textColor,
15016 RECT *blackbox_rect);
15017
15018 HDC (STDMETHODCALLTYPE *GetMemoryDC)(
15019 IDWriteBitmapRenderTarget3 *This);
15020
15021 FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)(
15022 IDWriteBitmapRenderTarget3 *This);
15023
15024 HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)(
15025 IDWriteBitmapRenderTarget3 *This,
15026 FLOAT pixels_per_dip);
15027
15028 HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
15029 IDWriteBitmapRenderTarget3 *This,
15030 DWRITE_MATRIX *transform);
15031
15032 HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)(
15033 IDWriteBitmapRenderTarget3 *This,
15034 const DWRITE_MATRIX *transform);
15035
15036 HRESULT (STDMETHODCALLTYPE *GetSize)(
15037 IDWriteBitmapRenderTarget3 *This,
15038 SIZE *size);
15039
15040 HRESULT (STDMETHODCALLTYPE *Resize)(
15041 IDWriteBitmapRenderTarget3 *This,
15042 UINT32 width,
15043 UINT32 height);
15044
15045 /*** IDWriteBitmapRenderTarget1 methods ***/
15046 DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)(
15047 IDWriteBitmapRenderTarget3 *This);
15048
15049 HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)(
15050 IDWriteBitmapRenderTarget3 *This,
15051 DWRITE_TEXT_ANTIALIAS_MODE mode);
15052
15053 /*** IDWriteBitmapRenderTarget2 methods ***/
15054 HRESULT (STDMETHODCALLTYPE *GetBitmapData)(
15055 IDWriteBitmapRenderTarget3 *This,
15056 DWRITE_BITMAP_DATA_BGRA32 *bitmap_data);
15057
15058 /*** IDWriteBitmapRenderTarget3 methods ***/
15059 DWRITE_PAINT_FEATURE_LEVEL (STDMETHODCALLTYPE *GetPaintFeatureLevel)(
15060 IDWriteBitmapRenderTarget3 *This);
15061
15062 HRESULT (STDMETHODCALLTYPE *DrawPaintGlyphRun)(
15063 IDWriteBitmapRenderTarget3 *This,
15064 FLOAT origin_x,
15065 FLOAT origin_y,
15066 DWRITE_MEASURING_MODE measuring_mode,
15067 const DWRITE_GLYPH_RUN *run,
15068 DWRITE_GLYPH_IMAGE_FORMATS image_format,
15069 COLORREF text_color,
15070 UINT32 palette_index,
15071 RECT *black_box);
15072
15073 HRESULT (STDMETHODCALLTYPE *DrawGlyphRunWithColorSupport)(
15074 IDWriteBitmapRenderTarget3 *This,
15075 FLOAT origin_x,
15076 FLOAT origin_y,
15077 DWRITE_MEASURING_MODE measuring_mode,
15078 const DWRITE_GLYPH_RUN *run,
15079 IDWriteRenderingParams *params,
15080 COLORREF text_color,
15081 UINT32 palette_index,
15082 RECT *black_box);
15083
15084 END_INTERFACE
15085} IDWriteBitmapRenderTarget3Vtbl;
15086
15087interface IDWriteBitmapRenderTarget3 {
15088 CONST_VTBL IDWriteBitmapRenderTarget3Vtbl* lpVtbl;
15089};
15090
15091#ifdef COBJMACROS
15092#ifndef WIDL_C_INLINE_WRAPPERS
15093/*** IUnknown methods ***/
15094#define IDWriteBitmapRenderTarget3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15095#define IDWriteBitmapRenderTarget3_AddRef(This) (This)->lpVtbl->AddRef(This)
15096#define IDWriteBitmapRenderTarget3_Release(This) (This)->lpVtbl->Release(This)
15097/*** IDWriteBitmapRenderTarget methods ***/
15098#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)
15099#define IDWriteBitmapRenderTarget3_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This)
15100#define IDWriteBitmapRenderTarget3_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This)
15101#define IDWriteBitmapRenderTarget3_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip)
15102#define IDWriteBitmapRenderTarget3_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform)
15103#define IDWriteBitmapRenderTarget3_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform)
15104#define IDWriteBitmapRenderTarget3_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
15105#define IDWriteBitmapRenderTarget3_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
15106/*** IDWriteBitmapRenderTarget1 methods ***/
15107#define IDWriteBitmapRenderTarget3_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This)
15108#define IDWriteBitmapRenderTarget3_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode)
15109/*** IDWriteBitmapRenderTarget2 methods ***/
15110#define IDWriteBitmapRenderTarget3_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data)
15111/*** IDWriteBitmapRenderTarget3 methods ***/
15112#define IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(This) (This)->lpVtbl->GetPaintFeatureLevel(This)
15113#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)
15114#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)
15115#else
15116/*** IUnknown methods ***/
15117static inline HRESULT IDWriteBitmapRenderTarget3_QueryInterface(IDWriteBitmapRenderTarget3* This,REFIID riid,void **ppvObject) {
15118 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15119}
15120static inline ULONG IDWriteBitmapRenderTarget3_AddRef(IDWriteBitmapRenderTarget3* This) {
15121 return This->lpVtbl->AddRef(This);
15122}
15123static inline ULONG IDWriteBitmapRenderTarget3_Release(IDWriteBitmapRenderTarget3* This) {
15124 return This->lpVtbl->Release(This);
15125}
15126/*** IDWriteBitmapRenderTarget methods ***/
15127static 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) {
15128 return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect);
15129}
15130static inline HDC IDWriteBitmapRenderTarget3_GetMemoryDC(IDWriteBitmapRenderTarget3* This) {
15131 return This->lpVtbl->GetMemoryDC(This);
15132}
15133static inline FLOAT IDWriteBitmapRenderTarget3_GetPixelsPerDip(IDWriteBitmapRenderTarget3* This) {
15134 return This->lpVtbl->GetPixelsPerDip(This);
15135}
15136static inline HRESULT IDWriteBitmapRenderTarget3_SetPixelsPerDip(IDWriteBitmapRenderTarget3* This,FLOAT pixels_per_dip) {
15137 return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip);
15138}
15139static inline HRESULT IDWriteBitmapRenderTarget3_GetCurrentTransform(IDWriteBitmapRenderTarget3* This,DWRITE_MATRIX *transform) {
15140 return This->lpVtbl->GetCurrentTransform(This,transform);
15141}
15142static inline HRESULT IDWriteBitmapRenderTarget3_SetCurrentTransform(IDWriteBitmapRenderTarget3* This,const DWRITE_MATRIX *transform) {
15143 return This->lpVtbl->SetCurrentTransform(This,transform);
15144}
15145static inline HRESULT IDWriteBitmapRenderTarget3_GetSize(IDWriteBitmapRenderTarget3* This,SIZE *size) {
15146 return This->lpVtbl->GetSize(This,size);
15147}
15148static inline HRESULT IDWriteBitmapRenderTarget3_Resize(IDWriteBitmapRenderTarget3* This,UINT32 width,UINT32 height) {
15149 return This->lpVtbl->Resize(This,width,height);
15150}
15151/*** IDWriteBitmapRenderTarget1 methods ***/
15152static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget3_GetTextAntialiasMode(IDWriteBitmapRenderTarget3* This) {
15153 return This->lpVtbl->GetTextAntialiasMode(This);
15154}
15155static inline HRESULT IDWriteBitmapRenderTarget3_SetTextAntialiasMode(IDWriteBitmapRenderTarget3* This,DWRITE_TEXT_ANTIALIAS_MODE mode) {
15156 return This->lpVtbl->SetTextAntialiasMode(This,mode);
15157}
15158/*** IDWriteBitmapRenderTarget2 methods ***/
15159static inline HRESULT IDWriteBitmapRenderTarget3_GetBitmapData(IDWriteBitmapRenderTarget3* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) {
15160 return This->lpVtbl->GetBitmapData(This,bitmap_data);
15161}
15162/*** IDWriteBitmapRenderTarget3 methods ***/
15163static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(IDWriteBitmapRenderTarget3* This) {
15164 return This->lpVtbl->GetPaintFeatureLevel(This);
15165}
15166static 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) {
15167 return This->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box);
15168}
15169static 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) {
15170 return This->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box);
15171}
15172#endif
15173#endif
15174
15175#endif
15176
15177
15178#endif /* __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ */
15179
14128/* Begin additional prototypes for all interfaces */15180/* Begin additional prototypes for all interfaces */
1412915181
1413015182
lib/libc/include/any-windows-any/dxgi.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dxgi.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dxgi.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_2.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dxgi1_2.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dxgi1_2.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_3.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dxgi1_3.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dxgi1_3.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_4.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dxgi1_4.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dxgi1_4.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_5.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dxgi1_5.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dxgi1_5.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_6.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dxgi1_6.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dxgi1_6.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgicommon.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dxgicommon.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dxgicommon.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgidebug.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dxgidebug.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dxgidebug.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgiformat.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dxgiformat.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dxgiformat.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgitype.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dxgitype.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dxgitype.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxva2api.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dxva2api.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dxva2api.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxvahd.h+2-2
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/dxvahd.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/dxvahd.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
...@@ -415,7 +415,7 @@ typedef struct _DXVAHDSW_CALLBACKS {...@@ -415,7 +415,7 @@ typedef struct _DXVAHDSW_CALLBACKS {
415 PDXVAHDSW_DestroyVideoProcessor DestroyVideoProcessor;415 PDXVAHDSW_DestroyVideoProcessor DestroyVideoProcessor;
416} DXVAHDSW_CALLBACKS;416} DXVAHDSW_CALLBACKS;
417417
418HRESULT DXVAHD_CreateDevice(IDirect3DDevice9Ex *pD3DDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,PDXVAHDSW_Plugin pPlugin,IDXVAHD_Device **ppDevice);418HRESULT WINAPI DXVAHD_CreateDevice(IDirect3DDevice9Ex *pD3DDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,PDXVAHDSW_Plugin pPlugin,IDXVAHD_Device **ppDevice);
419419
420/*****************************************************************************420/*****************************************************************************
421 * IDXVAHD_Device interface421 * IDXVAHD_Device interface
lib/libc/include/any-windows-any/endpointvolume.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/endpointvolume.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/endpointvolume.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/evr.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/evr.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/evr.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/evr9.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/evr9.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/evr9.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/exdisp.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/exdisp.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/exdisp.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fibersapi.h+5
...@@ -25,6 +25,11 @@ extern "C" {...@@ -25,6 +25,11 @@ extern "C" {
25 WINBASEAPI WINBOOL WINAPI FlsFree (DWORD dwFlsIndex);25 WINBASEAPI WINBOOL WINAPI FlsFree (DWORD dwFlsIndex);
26 WINBASEAPI WINBOOL WINAPI IsThreadAFiber (VOID);26 WINBASEAPI WINBOOL WINAPI IsThreadAFiber (VOID);
27#endif27#endif
28
29#if (_WIN32_WINNT >= _WIN32_WINNT_WIN10)
30 WINBASEAPI PVOID WINAPI FlsGetValue2(DWORD dwTlsIndex);
31#endif
32
28#endif33#endif
2934
30#ifdef __cplusplus35#ifdef __cplusplus
lib/libc/include/any-windows-any/filter.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/filter.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/filter.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fsrm.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/fsrm.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/fsrm.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fsrmenums.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/fsrmenums.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/fsrmenums.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fsrmquota.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/fsrmquota.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/fsrmquota.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fsrmreports.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/fsrmreports.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/fsrmreports.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fsrmscreen.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/fsrmscreen.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/fsrmscreen.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fusion.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/fusion.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/fusion.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fwptypes.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/fwptypes.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/fwptypes.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/hstring.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/hstring.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/hstring.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/icftypes.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/icftypes.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/icftypes.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/icodecapi.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/icodecapi.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/icodecapi.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/iketypes.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/iketypes.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/iketypes.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/inputpaneinterop.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/inputpaneinterop.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/inputpaneinterop.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/inputscope.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/inputscope.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/inputscope.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/inspectable.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/inspectable.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/inspectable.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/intrin.h+10-10
...@@ -55,7 +55,7 @@...@@ -55,7 +55,7 @@
55#endif55#endif
5656
57#if defined(__GNUC__) && \57#if defined(__GNUC__) && \
58 (defined(__i386__) || defined(__x86_64__))58 (defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__)))
59#ifndef _MM_MALLOC_H_INCLUDED59#ifndef _MM_MALLOC_H_INCLUDED
60#include <stdlib.h>60#include <stdlib.h>
61#include <errno.h>61#include <errno.h>
...@@ -103,7 +103,7 @@ typedef union __m128i { char v[16]; } __m128i;...@@ -103,7 +103,7 @@ typedef union __m128i { char v[16]; } __m128i;
103#endif103#endif
104#endif104#endif
105105
106#if (defined(_X86_) || defined(__x86_64))106#if (defined(_X86_) || (defined(__x86_64) && !defined(__arm64ec__)))
107107
108#if defined(__MMX__) || defined(__MINGW_FORCE_SYS_INTRINS)108#if defined(__MMX__) || defined(__MINGW_FORCE_SYS_INTRINS)
109#if defined(__cplusplus)109#if defined(__cplusplus)
...@@ -177,7 +177,7 @@ extern "C" {...@@ -177,7 +177,7 @@ extern "C" {
177#define __MACHINEIA32 __MACHINEZ177#define __MACHINEIA32 __MACHINEZ
178#endif178#endif
179179
180#if !(defined(_X86_) || defined(__x86_64) || defined(__ia64__))180#if !(defined(_X86_) || defined(__x86_64) || defined(__ia64__)) || defined(__arm64ec__)
181#undef __MACHINEIW64181#undef __MACHINEIW64
182#define __MACHINEIW64 __MACHINEZ182#define __MACHINEIW64 __MACHINEZ
183#endif183#endif
...@@ -187,17 +187,17 @@ extern "C" {...@@ -187,17 +187,17 @@ extern "C" {
187#define __MACHINEIA64 __MACHINEZ187#define __MACHINEIA64 __MACHINEZ
188#endif188#endif
189189
190#if !(defined(__ia64__) || defined(__x86_64))190#if !(defined(__ia64__) || defined(__x86_64)) || defined(__arm64ec__)
191#undef __MACHINEW64191#undef __MACHINEW64
192#define __MACHINEW64 __MACHINEZ192#define __MACHINEW64 __MACHINEZ
193#endif193#endif
194194
195#if !(defined(_X86_) || defined(__x86_64))195#if !(defined(_X86_) || defined(__x86_64)) || defined(__arm64ec__)
196#undef __MACHINEI196#undef __MACHINEI
197#define __MACHINEI __MACHINEZ197#define __MACHINEI __MACHINEZ
198#endif198#endif
199199
200#if !(defined(_X86_) || defined(__x86_64))200#if !(defined(_X86_) || defined(__x86_64)) || defined(__arm64ec__)
201#undef __MACHINEX86X201#undef __MACHINEX86X
202#define __MACHINEX86X __MACHINEZ202#define __MACHINEX86X __MACHINEZ
203#endif203#endif
...@@ -207,7 +207,7 @@ extern "C" {...@@ -207,7 +207,7 @@ extern "C" {
207#define __MACHINEX86X_NOX64 __MACHINEZ207#define __MACHINEX86X_NOX64 __MACHINEZ
208#endif208#endif
209209
210#if !(defined(_X86_) || defined(__x86_64)) || defined(__ia64__)210#if !(defined(_X86_) || defined(__x86_64)) || defined(__ia64__) || defined(__arm64ec__)
211#undef __MACHINEX86X_NOIA64211#undef __MACHINEX86X_NOIA64
212#define __MACHINEX86X_NOIA64 __MACHINEZ212#define __MACHINEX86X_NOIA64 __MACHINEZ
213#endif213#endif
...@@ -228,17 +228,17 @@ extern "C" {...@@ -228,17 +228,17 @@ extern "C" {
228#define __MACHINECC __MACHINEZ228#define __MACHINECC __MACHINEZ
229#endif229#endif
230230
231#if !(defined(__aarch64__))231#if !(defined(__aarch64__) || defined(__arm64ec__))
232#undef __MACHINEARM64232#undef __MACHINEARM64
233#define __MACHINEARM64 __MACHINEZ233#define __MACHINEARM64 __MACHINEZ
234#endif234#endif
235235
236#if !(defined(__arm__) || defined(__aarch64__))236#if !(defined(__arm__) || defined(__aarch64__) || defined(__arm64ec__))
237#undef __MACHINEARM_ARM64237#undef __MACHINEARM_ARM64
238#define __MACHINEARM_ARM64 __MACHINEZ238#define __MACHINEARM_ARM64 __MACHINEZ
239#endif239#endif
240240
241#if !(defined(__x86_64))241#if !(defined(__x86_64)) || defined(__arm64ec__)
242#undef __MACHINEX64242#undef __MACHINEX64
243#define __MACHINEX64 __MACHINEZ243#define __MACHINEX64 __MACHINEZ
244#endif244#endif
lib/libc/include/any-windows-any/io.h+15
...@@ -24,7 +24,15 @@...@@ -24,7 +24,15 @@
24extern "C" {24extern "C" {
25#endif25#endif
2626
27#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
28#pragma push_macro("_getcwd")
29#undef _getcwd
30#endif
27_CRTIMP char* __cdecl _getcwd (char*, int);31_CRTIMP char* __cdecl _getcwd (char*, int);
32#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
33#pragma pop_macro("_getcwd")
34#endif
35
28#ifndef _FSIZE_T_DEFINED36#ifndef _FSIZE_T_DEFINED
29 typedef unsigned long _fsize_t;37 typedef unsigned long _fsize_t;
30#define _FSIZE_T_DEFINED38#define _FSIZE_T_DEFINED
...@@ -278,7 +286,14 @@ _CRTIMP char* __cdecl _getcwd (char*, int);...@@ -278,7 +286,14 @@ _CRTIMP char* __cdecl _getcwd (char*, int);
278#ifndef NO_OLDNAMES286#ifndef NO_OLDNAMES
279#ifndef _UWIN287#ifndef _UWIN
280 int __cdecl chdir (const char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;288 int __cdecl chdir (const char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
289#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
290#pragma push_macro("getcwd")
291#undef getcwd
292#endif
281 char *__cdecl getcwd (char *, int) __MINGW_ATTRIB_DEPRECATED_MSVC2005;293 char *__cdecl getcwd (char *, int) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
294#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
295#pragma pop_macro("getcwd")
296#endif
282 int __cdecl mkdir (const char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;297 int __cdecl mkdir (const char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
283 char *__cdecl mktemp(char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;298 char *__cdecl mktemp(char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
284 int __cdecl rmdir (const char*) __MINGW_ATTRIB_DEPRECATED_MSVC2005;299 int __cdecl rmdir (const char*) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
lib/libc/include/any-windows-any/iwscapi.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/iwscapi.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/iwscapi.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/locationapi.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/locationapi.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/locationapi.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/malloc.h+74-1
...@@ -21,7 +21,13 @@ extern "C" {...@@ -21,7 +21,13 @@ extern "C" {
21#endif21#endif
2222
23#ifndef _STATIC_ASSERT23#ifndef _STATIC_ASSERT
24#if defined(_MSC_VER)24#if (defined(__cpp_static_assert) && __cpp_static_assert >= 201411L) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L)
25#define _STATIC_ASSERT(expr) static_assert(expr)
26#elif defined(__cpp_static_assert)
27#define _STATIC_ASSERT(expr) static_assert(expr, #expr)
28#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
29#define _STATIC_ASSERT(expr) _Static_assert(expr, #expr)
30#elif defined(_MSC_VER)
25#define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr)]31#define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr)]
26#else32#else
27#define _STATIC_ASSERT(expr) extern void __static_assert_t(int [(expr)?1:-1])33#define _STATIC_ASSERT(expr) extern void __static_assert_t(int [(expr)?1:-1])
...@@ -55,6 +61,36 @@ extern "C" {...@@ -55,6 +61,36 @@ extern "C" {
5561
56#ifndef _CRT_ALLOCATION_DEFINED62#ifndef _CRT_ALLOCATION_DEFINED
57#define _CRT_ALLOCATION_DEFINED63#define _CRT_ALLOCATION_DEFINED
64
65#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
66#pragma push_macro("calloc")
67#undef calloc
68#pragma push_macro("free")
69#undef free
70#pragma push_macro("malloc")
71#undef malloc
72#pragma push_macro("realloc")
73#undef realloc
74#pragma push_macro("_aligned_free")
75#undef _aligned_free
76#pragma push_macro("_aligned_malloc")
77#undef _aligned_malloc
78#pragma push_macro("_aligned_offset_malloc")
79#undef _aligned_offset_malloc
80#pragma push_macro("_aligned_realloc")
81#undef _aligned_realloc
82#pragma push_macro("_aligned_offset_realloc")
83#undef _aligned_offset_realloc
84#pragma push_macro("_recalloc")
85#undef _recalloc
86#pragma push_macro("_aligned_recalloc")
87#undef _aligned_recalloc
88#pragma push_macro("_aligned_offset_recalloc")
89#undef _aligned_offset_recalloc
90#pragma push_macro("_aligned_msize")
91#undef _aligned_msize
92#endif
93
58 void *__cdecl calloc(size_t _NumOfElements,size_t _SizeOfElements);94 void *__cdecl calloc(size_t _NumOfElements,size_t _SizeOfElements);
59 void __cdecl free(void *_Memory);95 void __cdecl free(void *_Memory);
60 void *__cdecl malloc(size_t _Size);96 void *__cdecl malloc(size_t _Size);
...@@ -72,6 +108,23 @@ extern "C" {...@@ -72,6 +108,23 @@ extern "C" {
72 _CRTIMP void *__cdecl _aligned_offset_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment,size_t _Offset);108 _CRTIMP void *__cdecl _aligned_offset_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment,size_t _Offset);
73 _CRTIMP size_t __cdecl _aligned_msize(void *_Memory,size_t _Alignment,size_t _Offset);109 _CRTIMP size_t __cdecl _aligned_msize(void *_Memory,size_t _Alignment,size_t _Offset);
74# endif110# endif
111
112#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
113#pragma pop_macro("calloc")
114#pragma pop_macro("free")
115#pragma pop_macro("malloc")
116#pragma pop_macro("realloc")
117#pragma pop_macro("_aligned_free")
118#pragma pop_macro("_aligned_malloc")
119#pragma pop_macro("_aligned_offset_malloc")
120#pragma pop_macro("_aligned_realloc")
121#pragma pop_macro("_aligned_offset_realloc")
122#pragma pop_macro("_recalloc")
123#pragma pop_macro("_aligned_recalloc")
124#pragma pop_macro("_aligned_offset_recalloc")
125#pragma pop_macro("_aligned_msize")
126#endif
127
75#endif128#endif
76129
77/* Users should really use MS provided versions */130/* Users should really use MS provided versions */
...@@ -92,8 +145,19 @@ void * __mingw_aligned_realloc (void *_Memory, size_t _Size, size_t _Offset);...@@ -92,8 +145,19 @@ void * __mingw_aligned_realloc (void *_Memory, size_t _Size, size_t _Offset);
92#endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */145#endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */
93 _CRTIMP unsigned long __cdecl _set_malloc_crt_max_wait(unsigned long _NewValue);146 _CRTIMP unsigned long __cdecl _set_malloc_crt_max_wait(unsigned long _NewValue);
94147
148#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
149#pragma push_macro("_expand")
150#undef _expand
151#pragma push_macro("_msize")
152#undef _msize
153#endif
95 _CRTIMP void *__cdecl _expand(void *_Memory,size_t _NewSize);154 _CRTIMP void *__cdecl _expand(void *_Memory,size_t _NewSize);
96 _CRTIMP size_t __cdecl _msize(void *_Memory);155 _CRTIMP size_t __cdecl _msize(void *_Memory);
156#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
157#pragma pop_macro("_expand")
158#pragma pop_macro("_msize")
159#endif
160
97#ifdef __GNUC__161#ifdef __GNUC__
98#undef _alloca162#undef _alloca
99#define _alloca(x) __builtin_alloca((x))163#define _alloca(x) __builtin_alloca((x))
...@@ -132,11 +196,20 @@ void * __mingw_aligned_realloc (void *_Memory, size_t _Size, size_t _Offset);...@@ -132,11 +196,20 @@ void * __mingw_aligned_realloc (void *_Memory, size_t _Size, size_t _Offset);
132 }196 }
133#endif197#endif
134198
199#ifdef _DEBUG
200#ifndef _CRTDBG_MAP_ALLOC
201#undef _malloca
202#define _malloca(size) \
203 _MarkAllocaS(malloc((size) + _ALLOCA_S_MARKER_SIZE), _ALLOCA_S_HEAP_MARKER)
204#endif
205#else
135#undef _malloca206#undef _malloca
136#define _malloca(size) \207#define _malloca(size) \
137 ((((size) + _ALLOCA_S_MARKER_SIZE) <= _ALLOCA_S_THRESHOLD) ? \208 ((((size) + _ALLOCA_S_MARKER_SIZE) <= _ALLOCA_S_THRESHOLD) ? \
138 _MarkAllocaS(_alloca((size) + _ALLOCA_S_MARKER_SIZE),_ALLOCA_S_STACK_MARKER) : \209 _MarkAllocaS(_alloca((size) + _ALLOCA_S_MARKER_SIZE),_ALLOCA_S_STACK_MARKER) : \
139 _MarkAllocaS(malloc((size) + _ALLOCA_S_MARKER_SIZE),_ALLOCA_S_HEAP_MARKER))210 _MarkAllocaS(malloc((size) + _ALLOCA_S_MARKER_SIZE),_ALLOCA_S_HEAP_MARKER))
211#endif
212
140#undef _FREEA_INLINE213#undef _FREEA_INLINE
141#define _FREEA_INLINE214#define _FREEA_INLINE
142215
lib/libc/include/any-windows-any/mapi.h+42
...@@ -35,6 +35,15 @@ extern "C" {...@@ -35,6 +35,15 @@ extern "C" {
35 LPVOID lpFileType;35 LPVOID lpFileType;
36 } MapiFileDesc,*lpMapiFileDesc;36 } MapiFileDesc,*lpMapiFileDesc;
3737
38 typedef struct {
39 ULONG ulReserved;
40 ULONG flFlags;
41 ULONG nPosition;
42 PWSTR lpszPathName;
43 PWSTR lpszFileName;
44 PVOID lpFileType;
45 } MapiFileDescW, *lpMapiFileDescW;
46
38#define MAPI_OLE 0x0000000147#define MAPI_OLE 0x00000001
39#define MAPI_OLE_STATIC 0x0000000248#define MAPI_OLE_STATIC 0x00000002
4049
...@@ -55,6 +64,15 @@ extern "C" {...@@ -55,6 +64,15 @@ extern "C" {
55 LPVOID lpEntryID;64 LPVOID lpEntryID;
56 } MapiRecipDesc,*lpMapiRecipDesc;65 } MapiRecipDesc,*lpMapiRecipDesc;
5766
67 typedef struct {
68 ULONG ulReserved;
69 ULONG ulRecipClass;
70 PWSTR lpszName;
71 PWSTR lpszAddress;
72 ULONG ulEIDSize;
73 PVOID lpEntryID;
74 } MapiRecipDescW, *lpMapiRecipDescW;
75
58#ifndef MAPI_ORIG76#ifndef MAPI_ORIG
59#define MAPI_ORIG 077#define MAPI_ORIG 0
60#define MAPI_TO 178#define MAPI_TO 1
...@@ -77,6 +95,21 @@ extern "C" {...@@ -77,6 +95,21 @@ extern "C" {
77 lpMapiFileDesc lpFiles;95 lpMapiFileDesc lpFiles;
78 } MapiMessage,*lpMapiMessage;96 } MapiMessage,*lpMapiMessage;
7997
98 typedef struct {
99 ULONG ulReserved;
100 PWSTR lpszSubject;
101 PWSTR lpszNoteText;
102 PWSTR lpszMessageType;
103 PWSTR lpszDateReceived;
104 PWSTR lpszConversationID;
105 FLAGS flFlags;
106 lpMapiRecipDescW lpOriginator;
107 ULONG nRecipCount;
108 lpMapiRecipDescW lpRecips;
109 ULONG nFileCount;
110 lpMapiFileDescW lpFiles;
111 } MapiMessageW, *lpMapiMessageW;
112
80#define MAPI_UNREAD 0x00000001113#define MAPI_UNREAD 0x00000001
81#define MAPI_RECEIPT_REQUESTED 0x00000002114#define MAPI_RECEIPT_REQUESTED 0x00000002
82#define MAPI_SENT 0x00000004115#define MAPI_SENT 0x00000004
...@@ -93,6 +126,9 @@ extern "C" {...@@ -93,6 +126,9 @@ extern "C" {
93#define MAPI_DIALOG 0x00000008126#define MAPI_DIALOG 0x00000008
94#endif127#endif
95128
129#define MAPI_DIALOG_MODELESS (0x00000004 | MAPI_DIALOG)
130#define MAPI_FORCE_UNICODE 0x00040000
131
96#define MAPI_UNREAD_ONLY 0x00000020132#define MAPI_UNREAD_ONLY 0x00000020
97#define MAPI_GUARANTEE_FIFO 0x00000100133#define MAPI_GUARANTEE_FIFO 0x00000100
98#define MAPI_LONG_MSGID 0x00004000134#define MAPI_LONG_MSGID 0x00004000
...@@ -116,6 +152,10 @@ extern "C" {...@@ -116,6 +152,10 @@ extern "C" {
116 typedef MAPISENDMAIL *LPMAPISENDMAIL;152 typedef MAPISENDMAIL *LPMAPISENDMAIL;
117 MAPISENDMAIL MAPISendMail;153 MAPISENDMAIL MAPISendMail;
118154
155 typedef ULONG (WINAPI MAPISENDMAILW)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiMessageW lpMessage,FLAGS flFlags,ULONG ulReserved);
156 typedef MAPISENDMAILW *LPMAPISENDMAILW;
157 MAPISENDMAILW MAPISendMailW;
158
119 typedef ULONG (WINAPI MAPISENDDOCUMENTS)(ULONG_PTR ulUIParam,LPSTR lpszDelimChar,LPSTR lpszFilePaths,LPSTR lpszFileNames,ULONG ulReserved);159 typedef ULONG (WINAPI MAPISENDDOCUMENTS)(ULONG_PTR ulUIParam,LPSTR lpszDelimChar,LPSTR lpszFilePaths,LPSTR lpszFileNames,ULONG ulReserved);
120 typedef MAPISENDDOCUMENTS *LPMAPISENDDOCUMENTS;160 typedef MAPISENDDOCUMENTS *LPMAPISENDDOCUMENTS;
121 MAPISENDDOCUMENTS MAPISendDocuments;161 MAPISENDDOCUMENTS MAPISendDocuments;
...@@ -183,6 +223,8 @@ extern "C" {...@@ -183,6 +223,8 @@ extern "C" {
183#define MAPI_E_INVALID_EDITFIELDS 24223#define MAPI_E_INVALID_EDITFIELDS 24
184#define MAPI_E_INVALID_RECIPS 25224#define MAPI_E_INVALID_RECIPS 25
185#define MAPI_E_NOT_SUPPORTED 26225#define MAPI_E_NOT_SUPPORTED 26
226#define MAPI_E_UNICODE_NOT_SUPPORTED 27
227#define MAPI_E_ATTACHMENT_TOO_LARGE 28
186228
187#ifdef MAPIX_H229#ifdef MAPIX_H
188 STDMETHODIMP_(SCODE) ScMAPIXFromSMAPI(LHANDLE lhSimpleSession,ULONG ulFlags,LPCIID lpInterface,LPMAPISESSION*lppMAPISession);230 STDMETHODIMP_(SCODE) ScMAPIXFromSMAPI(LHANDLE lhSimpleSession,ULONG ulFlags,LPCIID lpInterface,LPMAPISESSION*lppMAPISession);
lib/libc/include/any-windows-any/mbstring.h+7
...@@ -31,7 +31,14 @@ extern "C" {...@@ -31,7 +31,14 @@ extern "C" {
3131
32#ifndef _MBSTRING_DEFINED32#ifndef _MBSTRING_DEFINED
33#define _MBSTRING_DEFINED33#define _MBSTRING_DEFINED
34#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
35#pragma push_macro("_mbsdup")
36#undef _mbsdup
37#endif
34 _CRTIMP unsigned char *__cdecl _mbsdup(const unsigned char *_Str);38 _CRTIMP unsigned char *__cdecl _mbsdup(const unsigned char *_Str);
39#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
40#pragma pop_macro("_mbsdup")
41#endif
35 _CRTIMP unsigned int __cdecl _mbbtombc(unsigned int _Ch);42 _CRTIMP unsigned int __cdecl _mbbtombc(unsigned int _Ch);
36 _CRTIMP unsigned int __cdecl _mbbtombc_l(unsigned int _Ch,_locale_t _Locale);43 _CRTIMP unsigned int __cdecl _mbbtombc_l(unsigned int _Ch,_locale_t _Locale);
37 _CRTIMP int __cdecl _mbbtype(unsigned char _Ch,int _CType);44 _CRTIMP int __cdecl _mbbtype(unsigned char _Ch,int _CType);
lib/libc/include/any-windows-any/mediaobj.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mediaobj.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mediaobj.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/medparam.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/medparam.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/medparam.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfcaptureengine.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mfcaptureengine.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mfcaptureengine.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfd3d12.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mfd3d12.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mfd3d12.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfidl.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mfidl.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mfidl.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfmediacapture.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mfmediacapture.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mfmediacapture.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfmediaengine.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mfmediaengine.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mfmediaengine.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfobjects.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mfobjects.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mfobjects.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfplay.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mfplay.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mfplay.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfreadwrite.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mfreadwrite.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mfreadwrite.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mftransform.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mftransform.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mftransform.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mmdeviceapi.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mmdeviceapi.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mmdeviceapi.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mmstream.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mmstream.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mmstream.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mscoree.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mscoree.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mscoree.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/msctf.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/msctf.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/msctf.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mshtmhst.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mshtmhst.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mshtmhst.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mshtml.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/mshtml.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/mshtml.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/msinkaut.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/msinkaut.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/msinkaut.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/msinkaut_i.c+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from msinkaut.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from msinkaut.idl - Do not edit ***/
22
3#include <rpc.h>3#include <rpc.h>
4#include <rpcndr.h>4#include <rpcndr.h>
lib/libc/include/any-windows-any/msopc.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/msopc.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/msopc.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/msxml.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/msxml.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/msxml.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/msxml2.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/msxml2.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/msxml2.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/msxml6.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/msxml6.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/msxml6.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napcertrelyingparty.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/napcertrelyingparty.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/napcertrelyingparty.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napcommon.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/napcommon.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/napcommon.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napenforcementclient.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/napenforcementclient.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/napenforcementclient.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napmanagement.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/napmanagement.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/napmanagement.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napprotocol.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/napprotocol.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/napprotocol.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napservermanagement.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/napservermanagement.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/napservermanagement.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napsystemhealthagent.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/napsystemhealthagent.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/napsystemhealthagent.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napsystemhealthvalidator.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/napsystemhealthvalidator.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/napsystemhealthvalidator.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/naptypes.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/naptypes.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/naptypes.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/netcfgn.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/netcfgn.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/netcfgn.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/netcfgx.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/netcfgx.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/netcfgx.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/netfw.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/netfw.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/netfw.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/netlistmgr.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/netlistmgr.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/netlistmgr.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/oaidl.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/oaidl.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/oaidl.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/objectarray.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/objectarray.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/objectarray.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/objidl.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/objidl.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/objidl.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/objidlbase.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/objidlbase.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/objidlbase.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/ocidl.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/ocidl.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/ocidl.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/oleacc.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/oleacc.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/oleacc.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/oleidl.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/oleidl.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/oleidl.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/optary.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/optary.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/optary.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/portabledeviceapi.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/portabledeviceapi.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/portabledeviceapi.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/portabledevicetypes.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/portabledevicetypes.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/portabledevicetypes.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/processthreadsapi.h+11-3
...@@ -47,7 +47,7 @@ extern "C" {...@@ -47,7 +47,7 @@ extern "C" {
4747
48#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)48#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
49 WINBASEAPI WINBOOL WINAPI TerminateProcess (HANDLE hProcess, UINT uExitCode);49 WINBASEAPI WINBOOL WINAPI TerminateProcess (HANDLE hProcess, UINT uExitCode);
50 50
51 typedef struct _STARTUPINFOA {51 typedef struct _STARTUPINFOA {
52 DWORD cb;52 DWORD cb;
53 LPSTR lpReserved;53 LPSTR lpReserved;
...@@ -111,6 +111,8 @@ extern "C" {...@@ -111,6 +111,8 @@ extern "C" {
111 ProcessProtectionLevelInfo,111 ProcessProtectionLevelInfo,
112 ProcessLeapSecondInfo,112 ProcessLeapSecondInfo,
113 ProcessMachineTypeInfo,113 ProcessMachineTypeInfo,
114 ProcessOverrideSubsequentPrefetchParameter,
115 ProcessMaxOverridePrefetchParameter,
114 ProcessInformationClassMax116 ProcessInformationClassMax
115 } PROCESS_INFORMATION_CLASS;117 } PROCESS_INFORMATION_CLASS;
116118
...@@ -136,6 +138,10 @@ DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES);...@@ -136,6 +138,10 @@ DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES);
136 MACHINE_ATTRIBUTES MachineAttributes;138 MACHINE_ATTRIBUTES MachineAttributes;
137 } PROCESS_MACHINE_INFORMATION;139 } PROCESS_MACHINE_INFORMATION;
138140
141 typedef struct OVERRIDE_PREFETCH_PARAMETER {
142 UINT32 Value;
143 } OVERRIDE_PREFETCH_PARAMETER;
144
139#define PME_CURRENT_VERSION 1145#define PME_CURRENT_VERSION 1
140146
141 typedef enum _PROCESS_MEMORY_EXHAUSTION_TYPE {147 typedef enum _PROCESS_MEMORY_EXHAUSTION_TYPE {
...@@ -309,6 +315,7 @@ DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES);...@@ -309,6 +315,7 @@ DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES);
309#if _WIN32_WINNT >= 0x0A00315#if _WIN32_WINNT >= 0x0A00
310 WINBASEAPI DWORD WINAPI QueueUserAPC (PAPCFUNC pfnAPC, HANDLE hThread, ULONG_PTR dwData);316 WINBASEAPI DWORD WINAPI QueueUserAPC (PAPCFUNC pfnAPC, HANDLE hThread, ULONG_PTR dwData);
311 WINBASEAPI WINBOOL WINAPI SwitchToThread (VOID);317 WINBASEAPI WINBOOL WINAPI SwitchToThread (VOID);
318 WINBASEAPI LPVOID WINAPI TlsGetValue2(DWORD dwTlsIndex);
312#endif319#endif
313 WINBASEAPI DWORD WINAPI SuspendThread (HANDLE hThread);320 WINBASEAPI DWORD WINAPI SuspendThread (HANDLE hThread);
314 WINBASEAPI DWORD WINAPI ResumeThread (HANDLE hThread);321 WINBASEAPI DWORD WINAPI ResumeThread (HANDLE hThread);
...@@ -325,8 +332,9 @@ DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES);...@@ -325,8 +332,9 @@ DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES);
325332
326#if NTDDI_VERSION >= NTDDI_WIN10_MN333#if NTDDI_VERSION >= NTDDI_WIN10_MN
327 typedef enum _QUEUE_USER_APC_FLAGS {334 typedef enum _QUEUE_USER_APC_FLAGS {
328 QUEUE_USER_APC_FLAGS_NONE = 0x0,335 QUEUE_USER_APC_FLAGS_NONE = 0x00000000,
329 QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC = 0x1336 QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC = 0x00000001,
337 QUEUE_USER_APC_CALLBACK_DATA_CONTEXT = 0x00010000
330 } QUEUE_USER_APC_FLAGS;338 } QUEUE_USER_APC_FLAGS;
331339
332 typedef struct _APC_CALLBACK_DATA {340 typedef struct _APC_CALLBACK_DATA {
lib/libc/include/any-windows-any/proofofpossessioncookieinfo.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/proofofpossessioncookieinfo.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/proofofpossessioncookieinfo.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/propidl.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/propidl.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/propidl.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/propsys.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/propsys.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/propsys.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/propvarutil.h+3
...@@ -102,6 +102,7 @@ PSSTDAPI PropVariantToUInt32(REFPROPVARIANT propvarIn, ULONG *ret);...@@ -102,6 +102,7 @@ PSSTDAPI PropVariantToUInt32(REFPROPVARIANT propvarIn, ULONG *ret);
102PSSTDAPI_(ULONG) PropVariantToUInt32WithDefault(REFPROPVARIANT propvarIn, ULONG uLDefault);102PSSTDAPI_(ULONG) PropVariantToUInt32WithDefault(REFPROPVARIANT propvarIn, ULONG uLDefault);
103PSSTDAPI PropVariantToUInt64(REFPROPVARIANT propvarIn, ULONGLONG *ret);103PSSTDAPI PropVariantToUInt64(REFPROPVARIANT propvarIn, ULONGLONG *ret);
104PSSTDAPI PropVariantToBoolean(REFPROPVARIANT propvarIn, WINBOOL *ret);104PSSTDAPI PropVariantToBoolean(REFPROPVARIANT propvarIn, WINBOOL *ret);
105PSSTDAPI PropVariantToBSTR(REFPROPVARIANT propvar, BSTR *bstr);
105PSSTDAPI PropVariantToBuffer(REFPROPVARIANT propvarIn, void *ret, UINT cb);106PSSTDAPI PropVariantToBuffer(REFPROPVARIANT propvarIn, void *ret, UINT cb);
106PSSTDAPI PropVariantToString(REFPROPVARIANT propvarIn, PWSTR ret, UINT cch);107PSSTDAPI PropVariantToString(REFPROPVARIANT propvarIn, PWSTR ret, UINT cch);
107PSSTDAPI_(PCWSTR) PropVariantToStringWithDefault(REFPROPVARIANT propvarIn, LPCWSTR pszDefault);108PSSTDAPI_(PCWSTR) PropVariantToStringWithDefault(REFPROPVARIANT propvarIn, LPCWSTR pszDefault);
...@@ -113,6 +114,8 @@ PSSTDAPI PropVariantToStringAlloc(REFPROPVARIANT propvarIn, WCHAR **ret);...@@ -113,6 +114,8 @@ PSSTDAPI PropVariantToStringAlloc(REFPROPVARIANT propvarIn, WCHAR **ret);
113PSSTDAPI PropVariantToVariant(const PROPVARIANT *propvar, VARIANT *var);114PSSTDAPI PropVariantToVariant(const PROPVARIANT *propvar, VARIANT *var);
114PSSTDAPI VariantToPropVariant(const VARIANT* var, PROPVARIANT* propvar);115PSSTDAPI VariantToPropVariant(const VARIANT* var, PROPVARIANT* propvar);
115116
117PSSTDAPI PropVariantGetStringElem(const PROPVARIANT *propvar, ULONG idx, WCHAR **ret);
118
116#ifdef __cplusplus119#ifdef __cplusplus
117120
118HRESULT InitPropVariantFromBoolean(WINBOOL fVal, PROPVARIANT *ppropvar);121HRESULT InitPropVariantFromBoolean(WINBOOL fVal, PROPVARIANT *ppropvar);
lib/libc/include/any-windows-any/psdk_inc/intrin-impl.h+13-14
...@@ -134,7 +134,7 @@ __INTRINSICS_USEINLINE...@@ -134,7 +134,7 @@ __INTRINSICS_USEINLINE
134 FunctionName: Any valid function name134 FunctionName: Any valid function name
135 DataType: __LONG32 or __int64135 DataType: __LONG32 or __int64
136 OffsetConstraint: either "I" for 32bit data types or "J" for 64. */136 OffsetConstraint: either "I" for 32bit data types or "J" for 64. */
137#if defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_)137#if (defined(__x86_64__) && !defined(__arm64ec__)) || (defined(_AMD64_) && !defined(_ARM64EC_)) || defined(__i386__) || defined(_X86_)
138#define __buildbittesti(x, y, z, a) unsigned char x(y volatile *Base, y Offset) \138#define __buildbittesti(x, y, z, a) unsigned char x(y volatile *Base, y Offset) \
139{ \139{ \
140 unsigned char old; \140 unsigned char old; \
...@@ -162,7 +162,7 @@ __INTRINSICS_USEINLINE...@@ -162,7 +162,7 @@ __INTRINSICS_USEINLINE
162 : "memory", "cc"); \162 : "memory", "cc"); \
163 return (old >> Offset) & 1; \163 return (old >> Offset) & 1; \
164}164}
165#elif defined(__aarch64__) || defined(_ARM64_)165#elif defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_)
166#define __buildbittesti(x, y, z, a) unsigned char x(y volatile *Base, y Offset) \166#define __buildbittesti(x, y, z, a) unsigned char x(y volatile *Base, y Offset) \
167{ \167{ \
168 unsigned int old, tmp1, tmp2; \168 unsigned int old, tmp1, tmp2; \
...@@ -198,7 +198,7 @@ __INTRINSICS_USEINLINE...@@ -198,7 +198,7 @@ __INTRINSICS_USEINLINE
198 : "memory", "cc"); \198 : "memory", "cc"); \
199 return (old >> Offset) & 1; \199 return (old >> Offset) & 1; \
200}200}
201#endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) */201#endif /* (defined(__x86_64__) && !defined(__arm64ec__)) || (defined(_AMD64_) && !defined(_ARM64EC_)) || defined(__i386__) || defined(_X86_) */
202202
203/* This macro is used by YieldProcessor when compiling x86 w/o SSE2.203/* This macro is used by YieldProcessor when compiling x86 w/o SSE2.
204It generates the same opcodes as _mm_pause. */204It generates the same opcodes as _mm_pause. */
...@@ -668,8 +668,7 @@ unsigned short _rotr16(unsigned short __X, unsigned char __C)...@@ -668,8 +668,7 @@ unsigned short _rotr16(unsigned short __X, unsigned char __C)
668#define __INTRINSIC_DEFINED__rotr16668#define __INTRINSIC_DEFINED__rotr16
669#endif /* __INTRINSIC_PROLOG */669#endif /* __INTRINSIC_PROLOG */
670670
671#if defined(__x86_64__) || defined(_AMD64_)671#if (defined(__x86_64__) && !defined(__arm64ec__)) || (defined(_AMD64_) && !defined(_ARM64EC_))
672
673#if __INTRINSIC_PROLOG(__faststorefence)672#if __INTRINSIC_PROLOG(__faststorefence)
674void __faststorefence(void);673void __faststorefence(void);
675#if !__has_builtin(__faststorefence)674#if !__has_builtin(__faststorefence)
...@@ -1103,7 +1102,7 @@ unsigned __int64 __shiftright128 (unsigned __int64 LowPart, unsigned __int64 Hi...@@ -1103,7 +1102,7 @@ unsigned __int64 __shiftright128 (unsigned __int64 LowPart, unsigned __int64 Hi
1103#define __INTRINSIC_DEFINED___shiftright1281102#define __INTRINSIC_DEFINED___shiftright128
1104#endif /* __INTRINSIC_PROLOG */1103#endif /* __INTRINSIC_PROLOG */
11051104
1106#endif /* defined(__x86_64__) || defined(_AMD64_) */1105#endif /* #(defined(__x86_64__) && !defined(__arm64ec__)) || (defined(_AMD64_) && !defined(_ARM64EC_)) */
11071106
1108/* ***************************************************** */1107/* ***************************************************** */
11091108
...@@ -1195,7 +1194,7 @@ unsigned char _BitScanReverse(unsigned __LONG32 *Index, unsigned __LONG32 Mask)...@@ -1195,7 +1194,7 @@ unsigned char _BitScanReverse(unsigned __LONG32 *Index, unsigned __LONG32 Mask)
11951194
1196#endif /* defined(__arm__) || defined(_ARM_) */1195#endif /* defined(__arm__) || defined(_ARM_) */
11971196
1198#if defined(__aarch64__) || defined(_ARM64_)1197#if defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_)
11991198
1200#if __INTRINSIC_PROLOG(_interlockedbittestandset)1199#if __INTRINSIC_PROLOG(_interlockedbittestandset)
1201unsigned char _interlockedbittestandset(__LONG32 volatile *a, __LONG32 b);1200unsigned char _interlockedbittestandset(__LONG32 volatile *a, __LONG32 b);
...@@ -1436,9 +1435,9 @@ unsigned char _BitScanReverse64(unsigned __LONG32 *Index, unsigned __int64 Mask)...@@ -1436,9 +1435,9 @@ unsigned char _BitScanReverse64(unsigned __LONG32 *Index, unsigned __int64 Mask)
1436#define __INTRINSIC_DEFINED__BitScanReverse641435#define __INTRINSIC_DEFINED__BitScanReverse64
1437#endif /* __INTRINSIC_PROLOG */1436#endif /* __INTRINSIC_PROLOG */
14381437
1439#endif /* defined(__aarch64__) || define(_ARM64_) */1438#endif /* defined(__aarch64__) || define(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_) */
14401439
1441#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_)1440#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_)
14421441
1443#if __INTRINSIC_PROLOG(_bittest)1442#if __INTRINSIC_PROLOG(_bittest)
1444unsigned char _bittest(const __LONG32 *__a, __LONG32 __b);1443unsigned char _bittest(const __LONG32 *__a, __LONG32 __b);
...@@ -1494,9 +1493,9 @@ unsigned char _bittestandcomplement(__LONG32 *__a, __LONG32 __b)...@@ -1494,9 +1493,9 @@ unsigned char _bittestandcomplement(__LONG32 *__a, __LONG32 __b)
1494#define __INTRINSIC_DEFINED__bittestandcomplement1493#define __INTRINSIC_DEFINED__bittestandcomplement
1495#endif /* __INTRINSIC_PROLOG */1494#endif /* __INTRINSIC_PROLOG */
14961495
1497#endif /* defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) */1496#endif /* defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_) */
14981497
1499#if defined(__aarch64__) || defined(_ARM64_)1498#if defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_)
15001499
1501#if __INTRINSIC_PROLOG(_bittest64)1500#if __INTRINSIC_PROLOG(_bittest64)
1502unsigned char _bittest64(const __int64 *__a, __int64 __b);1501unsigned char _bittest64(const __int64 *__a, __int64 __b);
...@@ -1552,7 +1551,7 @@ unsigned char _bittestandcomplement64(__int64 *__a, __int64 __b)...@@ -1552,7 +1551,7 @@ unsigned char _bittestandcomplement64(__int64 *__a, __int64 __b)
1552#define __INTRINSIC_DEFINED__bittestandcomplement641551#define __INTRINSIC_DEFINED__bittestandcomplement64
1553#endif /* __INTRINSIC_PROLOG */1552#endif /* __INTRINSIC_PROLOG */
15541553
1555#endif /* defined(__aarch64__) || define(_ARM64_) */1554#endif /* defined(__aarch64__) || define(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_) */
15561555
1557/* ***************************************************** */1556/* ***************************************************** */
15581557
...@@ -1777,7 +1776,7 @@ void *_InterlockedExchangePointer(void *volatile *Target,void *Value) {...@@ -1777,7 +1776,7 @@ void *_InterlockedExchangePointer(void *volatile *Target,void *Value) {
17771776
1778#endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) || defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) */1777#endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) || defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) */
17791778
1780#if defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_)1779#if (defined(__x86_64__) && !defined(__arm64ec__)) || (defined(_AMD64_) && !defined(_ARM64EC_)) || defined(__i386__) || defined(_X86_)
17811780
1782#if __INTRINSIC_PROLOG(__int2c)1781#if __INTRINSIC_PROLOG(__int2c)
1783void __int2c(void);1782void __int2c(void);
...@@ -2157,7 +2156,7 @@ unsigned __int64 _xgetbv(unsigned int index)...@@ -2157,7 +2156,7 @@ unsigned __int64 _xgetbv(unsigned int index)
2157#endif /* __INTRINSIC_PROLOG */2156#endif /* __INTRINSIC_PROLOG */
2158#endif /* __GNUC__ < 8 */2157#endif /* __GNUC__ < 8 */
21592158
2160#endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) */2159#endif /* (defined(__x86_64__) && !defined(__arm64ec__)) || (defined(_AMD64_) && !defined(_ARM64EC_)) || defined(__i386__) || defined(_X86_) */
21612160
2162/* ***************************************************** */2161/* ***************************************************** */
21632162
lib/libc/include/any-windows-any/pthread.h+5-52
...@@ -68,9 +68,12 @@...@@ -68,9 +68,12 @@
68#include <signal.h>68#include <signal.h>
69#include <time.h>69#include <time.h>
7070
71#include <sys/timeb.h>
72
73#include "pthread_compat.h"71#include "pthread_compat.h"
72#include "sched.h"
73
74#ifdef _MSC_VER
75#include "pthread_time.h"
76#endif
7477
75#ifdef __cplusplus78#ifdef __cplusplus
76extern "C" {79extern "C" {
...@@ -83,36 +86,11 @@ extern "C" {...@@ -83,36 +86,11 @@ extern "C" {
83/* MSB 8-bit major version, 8-bit minor version, 16-bit patch level. */86/* MSB 8-bit major version, 8-bit minor version, 16-bit patch level. */
84#define __WINPTHREADS_VERSION 0x0005000087#define __WINPTHREADS_VERSION 0x00050000
8588
86#if defined(IN_WINPTHREAD)
87# if defined(DLL_EXPORT)
88# define WINPTHREAD_API __declspec(dllexport) /* building the DLL */
89# else
90# define WINPTHREAD_API /* building the static library */
91# endif
92#else
93# if defined(WINPTHREADS_USE_DLLIMPORT)
94# define WINPTHREAD_API __declspec(dllimport) /* user wants explicit `dllimport` */
95# else
96# define WINPTHREAD_API /* the default; auto imported in case of DLL */
97# endif
98#endif
99
100/* #define WINPTHREAD_DBG 1 */89/* #define WINPTHREAD_DBG 1 */
10190
102/* Compatibility stuff: */91/* Compatibility stuff: */
103#define RWLS_PER_THREAD 892#define RWLS_PER_THREAD 8
10493
105/* Error-codes. */
106#ifndef ETIMEDOUT
107#define ETIMEDOUT 138
108#endif
109#ifndef ENOTSUP
110#define ENOTSUP 129
111#endif
112#ifndef EWOULDBLOCK
113#define EWOULDBLOCK 140
114#endif
115
116/* pthread specific defines. */94/* pthread specific defines. */
11795
118#define PTHREAD_CANCEL_DISABLE 096#define PTHREAD_CANCEL_DISABLE 0
...@@ -234,26 +212,6 @@ struct _pthread_cleanup...@@ -234,26 +212,6 @@ struct _pthread_cleanup
234 if ((E)) _pthread_cup.func((pthread_once_t *)_pthread_cup.arg); \212 if ((E)) _pthread_cup.func((pthread_once_t *)_pthread_cup.arg); \
235 } while (0)213 } while (0)
236214
237#ifndef SCHED_OTHER
238/* Some POSIX realtime extensions, mostly stubbed */
239#define SCHED_OTHER 0
240#define SCHED_FIFO 1
241#define SCHED_RR 2
242#define SCHED_MIN SCHED_OTHER
243#define SCHED_MAX SCHED_RR
244
245struct sched_param {
246 int sched_priority;
247};
248
249WINPTHREAD_API int sched_yield(void);
250WINPTHREAD_API int sched_get_priority_min(int pol);
251WINPTHREAD_API int sched_get_priority_max(int pol);
252WINPTHREAD_API int sched_getscheduler(pid_t pid);
253WINPTHREAD_API int sched_setscheduler(pid_t pid, int pol, const struct sched_param *param);
254
255#endif
256
257typedef struct pthread_attr_t pthread_attr_t;215typedef struct pthread_attr_t pthread_attr_t;
258struct pthread_attr_t216struct pthread_attr_t
259{217{
...@@ -393,11 +351,6 @@ WINPTHREAD_API int pthread_condattr_init(pthread_condattr_t *a);...@@ -393,11 +351,6 @@ WINPTHREAD_API int pthread_condattr_init(pthread_condattr_t *a);
393WINPTHREAD_API int pthread_condattr_getpshared(const pthread_condattr_t *a, int *s);351WINPTHREAD_API int pthread_condattr_getpshared(const pthread_condattr_t *a, int *s);
394WINPTHREAD_API int pthread_condattr_setpshared(pthread_condattr_t *a, int s);352WINPTHREAD_API int pthread_condattr_setpshared(pthread_condattr_t *a, int s);
395353
396#ifndef __clockid_t_defined
397typedef int clockid_t;
398#define __clockid_t_defined 1
399#endif /* __clockid_t_defined */
400
401WINPTHREAD_API int pthread_condattr_getclock (const pthread_condattr_t *attr,354WINPTHREAD_API int pthread_condattr_getclock (const pthread_condattr_t *attr,
402 clockid_t *clock_id);355 clockid_t *clock_id);
403WINPTHREAD_API int pthread_condattr_setclock(pthread_condattr_t *attr,356WINPTHREAD_API int pthread_condattr_setclock(pthread_condattr_t *attr,
lib/libc/include/any-windows-any/pthread_compat.h+35-3
...@@ -60,6 +60,41 @@...@@ -60,6 +60,41 @@
60#ifndef WIN_PTHREADS_PTHREAD_COMPAT_H60#ifndef WIN_PTHREADS_PTHREAD_COMPAT_H
61#define WIN_PTHREADS_PTHREAD_COMPAT_H61#define WIN_PTHREADS_PTHREAD_COMPAT_H
6262
63#if defined(IN_WINPTHREAD)
64# if defined(DLL_EXPORT)
65# define WINPTHREAD_API __declspec(dllexport) /* building the DLL */
66# else
67# define WINPTHREAD_API /* building the static library */
68# endif
69#else
70# if defined(WINPTHREADS_USE_DLLIMPORT)
71# define WINPTHREAD_API __declspec(dllimport) /* user wants explicit `dllimport` */
72# else
73# define WINPTHREAD_API /* the default; auto imported in case of DLL */
74# endif
75#endif
76
77#ifndef __clockid_t_defined
78typedef int clockid_t;
79#define __clockid_t_defined 1
80#endif /* __clockid_t_defined */
81
82#ifndef _MODE_T_
83#define _MODE_T_
84typedef unsigned short mode_t;
85#endif
86
87/* Error-codes. */
88#ifndef ETIMEDOUT
89#define ETIMEDOUT 138
90#endif
91#ifndef ENOTSUP
92#define ENOTSUP 129
93#endif
94#ifndef EWOULDBLOCK
95#define EWOULDBLOCK 140
96#endif
97
63#ifdef __GNUC__98#ifdef __GNUC__
6499
65#define WINPTHREADS_INLINE inline100#define WINPTHREADS_INLINE inline
...@@ -68,14 +103,11 @@...@@ -68,14 +103,11 @@
68103
69#elif _MSC_VER104#elif _MSC_VER
70105
71#include "pthread_time.h"
72
73#ifdef _WIN64106#ifdef _WIN64
74typedef __int64 pid_t;107typedef __int64 pid_t;
75#else108#else
76typedef int pid_t;109typedef int pid_t;
77#endif110#endif
78typedef int clockid_t;
79111
80#define WINPTHREADS_INLINE __inline112#define WINPTHREADS_INLINE __inline
81#define WINPTHREADS_ATTRIBUTE(X) __declspec X113#define WINPTHREADS_ATTRIBUTE(X) __declspec X
lib/libc/include/any-windows-any/pthread_time.h+2-17
...@@ -20,11 +20,11 @@...@@ -20,11 +20,11 @@
20 DEALINGS IN THE SOFTWARE.20 DEALINGS IN THE SOFTWARE.
21*/21*/
2222
23#include <sys/timeb.h>
24
25#ifndef WIN_PTHREADS_TIME_H23#ifndef WIN_PTHREADS_TIME_H
26#define WIN_PTHREADS_TIME_H24#define WIN_PTHREADS_TIME_H
2725
26#include "pthread_compat.h"
27
28/* Posix timers are supported */28/* Posix timers are supported */
29#ifndef _POSIX_TIMERS29#ifndef _POSIX_TIMERS
30#define _POSIX_TIMERS 200809L30#define _POSIX_TIMERS 200809L
...@@ -45,11 +45,6 @@...@@ -45,11 +45,6 @@
45#define _POSIX_THREAD_CPUTIME 200809L45#define _POSIX_THREAD_CPUTIME 200809L
46#endif46#endif
4747
48#ifndef __clockid_t_defined
49typedef int clockid_t;
50#define __clockid_t_defined 1
51#endif /* __clockid_t_defined */
52
53#ifndef TIMER_ABSTIME48#ifndef TIMER_ABSTIME
54#define TIMER_ABSTIME 149#define TIMER_ABSTIME 1
55#endif50#endif
...@@ -78,13 +73,6 @@ typedef int clockid_t;...@@ -78,13 +73,6 @@ typedef int clockid_t;
78extern "C" {73extern "C" {
79#endif74#endif
8075
81/* Make sure we provide default for WINPTHREAD_API, if not defined. */
82#pragma push_macro("WINPTHREAD_API")
83#ifndef WINPTHREAD_API
84#define WINPTHREAD_API
85#endif
86
87/* These should really be dllimport'ed if using winpthread dll */
88WINPTHREAD_API int __cdecl nanosleep(const struct timespec *request, struct timespec *remain);76WINPTHREAD_API int __cdecl nanosleep(const struct timespec *request, struct timespec *remain);
8977
90WINPTHREAD_API int __cdecl clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *request, struct timespec *remain);78WINPTHREAD_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...@@ -92,11 +80,8 @@ WINPTHREAD_API int __cdecl clock_getres(clockid_t clock_id, struct timespec *res
92WINPTHREAD_API int __cdecl clock_gettime(clockid_t clock_id, struct timespec *tp);80WINPTHREAD_API int __cdecl clock_gettime(clockid_t clock_id, struct timespec *tp);
93WINPTHREAD_API int __cdecl clock_settime(clockid_t clock_id, const struct timespec *tp);81WINPTHREAD_API int __cdecl clock_settime(clockid_t clock_id, const struct timespec *tp);
9482
95#pragma pop_macro("WINPTHREAD_API")
96
97#ifdef __cplusplus83#ifdef __cplusplus
98}84}
99#endif85#endif
10086
101#endif /* WIN_PTHREADS_TIME_H */87#endif /* WIN_PTHREADS_TIME_H */
102
lib/libc/include/any-windows-any/qedit.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/qedit.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/qedit.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/qnetwork.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/qnetwork.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/qnetwork.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/rdpencomapi.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/rdpencomapi.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/rdpencomapi.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/regbag.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/regbag.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/regbag.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/relogger.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/relogger.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/relogger.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/robuffer.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/robuffer.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/robuffer.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/rtworkq.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/rtworkq.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/rtworkq.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/sapi51.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/sapi51.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/sapi51.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/sapi53.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/sapi53.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/sapi53.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/sapi54.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/sapi54.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/sapi54.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/sched.h+7-27
...@@ -19,6 +19,8 @@...@@ -19,6 +19,8 @@
19 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER19 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20 DEALINGS IN THE SOFTWARE.20 DEALINGS IN THE SOFTWARE.
21*/21*/
22#ifndef WIN_PTHREADS_SCHED_H
23#define WIN_PTHREADS_SCHED_H
2224
23#include <stddef.h>25#include <stddef.h>
24#include <errno.h>26#include <errno.h>
...@@ -28,14 +30,8 @@...@@ -28,14 +30,8 @@
28#include <limits.h>30#include <limits.h>
29#include <signal.h>31#include <signal.h>
3032
31#include <sys/timeb.h>
32
33#include "pthread_compat.h"33#include "pthread_compat.h"
3434
35#ifndef WIN_PTHREADS_SCHED_H
36#define WIN_PTHREADS_SCHED_H
37
38#ifndef SCHED_OTHER
39/* Some POSIX realtime extensions, mostly stubbed */35/* Some POSIX realtime extensions, mostly stubbed */
40#define SCHED_OTHER 036#define SCHED_OTHER 0
41#define SCHED_FIFO 137#define SCHED_FIFO 1
...@@ -51,32 +47,16 @@ struct sched_param {...@@ -51,32 +47,16 @@ struct sched_param {
51extern "C" {47extern "C" {
52#endif48#endif
5349
54#if defined(IN_WINPTHREAD)50WINPTHREAD_API int sched_yield(void);
55# if defined(DLL_EXPORT) && !defined(WINPTHREAD_EXPORT_ALL_DEBUG)51WINPTHREAD_API int sched_get_priority_min(int pol);
56# define WINPTHREAD_SCHED_API __declspec(dllexport) /* building the DLL */52WINPTHREAD_API int sched_get_priority_max(int pol);
57# else53WINPTHREAD_API int sched_getscheduler(pid_t pid);
58# define WINPTHREAD_SCHED_API /* building the static library */54WINPTHREAD_API int sched_setscheduler(pid_t pid, int pol, const struct sched_param *param);
59# endif
60#else
61# if defined(WINPTHREADS_USE_DLLIMPORT)
62# define WINPTHREAD_SCHED_API __declspec(dllimport) /* user wants explicit `dllimport` */
63# else
64# define WINPTHREAD_SCHED_API /* the default; auto imported in case of DLL */
65# endif
66#endif
67
68WINPTHREAD_SCHED_API int sched_yield(void);
69WINPTHREAD_SCHED_API int sched_get_priority_min(int pol);
70WINPTHREAD_SCHED_API int sched_get_priority_max(int pol);
71WINPTHREAD_SCHED_API int sched_getscheduler(pid_t pid);
72WINPTHREAD_SCHED_API int sched_setscheduler(pid_t pid, int pol, const struct sched_param *param);
7355
74#ifdef __cplusplus56#ifdef __cplusplus
75}57}
76#endif58#endif
7759
78#endif
79
80#ifndef sched_rr_get_interval60#ifndef sched_rr_get_interval
81#define sched_rr_get_interval(_p, _i) \61#define sched_rr_get_interval(_p, _i) \
82 ( errno = ENOTSUP, (int) -1 )62 ( errno = ENOTSUP, (int) -1 )
lib/libc/include/any-windows-any/sec_api/stdlib_s.h+9-1
...@@ -12,8 +12,16 @@...@@ -12,8 +12,16 @@
12extern "C" {12extern "C" {
13#endif13#endif
1414
15 _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);15#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
16#pragma push_macro("_dupenv_s")
17#undef _dupenv_s
18#endif
16 _CRTIMP errno_t __cdecl _dupenv_s(char **_PBuffer,size_t *_PBufferSizeInBytes,const char *_VarName);19 _CRTIMP errno_t __cdecl _dupenv_s(char **_PBuffer,size_t *_PBufferSizeInBytes,const char *_VarName);
20#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
21#pragma pop_macro("_dupenv_s")
22#endif
23
24 _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);
17 _CRTIMP errno_t __cdecl getenv_s(size_t *_ReturnSize,char *_DstBuf,rsize_t _DstSize,const char *_VarName);25 _CRTIMP errno_t __cdecl getenv_s(size_t *_ReturnSize,char *_DstBuf,rsize_t _DstSize,const char *_VarName);
18 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, getenv_s, size_t *, _ReturnSize, char, _Dest, const char *, _VarName)26 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, getenv_s, size_t *, _ReturnSize, char, _Dest, const char *, _VarName)
19 _CRTIMP errno_t __cdecl _itoa_s(int _Value,char *_DstBuf,size_t _Size,int _Radix);27 _CRTIMP errno_t __cdecl _itoa_s(int _Value,char *_DstBuf,size_t _Size,int _Radix);
lib/libc/include/any-windows-any/semaphore.h+13-30
...@@ -23,60 +23,43 @@...@@ -23,60 +23,43 @@
23#ifndef WIN_PTHREADS_SEMAPHORE_H23#ifndef WIN_PTHREADS_SEMAPHORE_H
24#define WIN_PTHREADS_SEMAPHORE_H24#define WIN_PTHREADS_SEMAPHORE_H
2525
26#include "pthread_compat.h"
27
26#ifdef __cplusplus28#ifdef __cplusplus
27extern "C" {29extern "C" {
28#endif30#endif
2931
30#if defined(IN_WINPTHREAD)
31# if defined(DLL_EXPORT) && !defined(WINPTHREAD_EXPORT_ALL_DEBUG)
32# define WINPTHREAD_SEMA_API __declspec(dllexport) /* building the DLL */
33# else
34# define WINPTHREAD_SEMA_API /* building the static library */
35# endif
36#else
37# if defined(WINPTHREADS_USE_DLLIMPORT)
38# define WINPTHREAD_SEMA_API __declspec(dllimport) /* user wants explicit `dllimport` */
39# else
40# define WINPTHREAD_SEMA_API /* the default; auto imported in case of DLL */
41# endif
42#endif
43
44/* Set this to 0 to disable it */32/* Set this to 0 to disable it */
45#define USE_SEM_CriticalSection_SpinCount 10033#define USE_SEM_CriticalSection_SpinCount 100
4634
47#define SEM_VALUE_MAX INT_MAX35#define SEM_VALUE_MAX INT_MAX
4836
49#ifndef _MODE_T_
50#define _MODE_T_
51typedef unsigned short mode_t;
52#endif
53
54typedef void *sem_t;37typedef void *sem_t;
5538
56#define SEM_FAILED NULL39#define SEM_FAILED NULL
5740
58WINPTHREAD_SEMA_API int sem_init(sem_t * sem, int pshared, unsigned int value);41WINPTHREAD_API int sem_init(sem_t * sem, int pshared, unsigned int value);
5942
60WINPTHREAD_SEMA_API int sem_destroy(sem_t *sem);43WINPTHREAD_API int sem_destroy(sem_t *sem);
6144
62WINPTHREAD_SEMA_API int sem_trywait(sem_t *sem);45WINPTHREAD_API int sem_trywait(sem_t *sem);
6346
64WINPTHREAD_SEMA_API int sem_wait(sem_t *sem);47WINPTHREAD_API int sem_wait(sem_t *sem);
6548
66WINPTHREAD_SEMA_API int sem_timedwait(sem_t * sem, const struct timespec *t);49WINPTHREAD_API int sem_timedwait(sem_t * sem, const struct timespec *t);
6750
68WINPTHREAD_SEMA_API int sem_post(sem_t *sem);51WINPTHREAD_API int sem_post(sem_t *sem);
6952
70WINPTHREAD_SEMA_API int sem_post_multiple(sem_t *sem, int count);53WINPTHREAD_API int sem_post_multiple(sem_t *sem, int count);
7154
72/* yes, it returns a semaphore (or SEM_FAILED) */55/* yes, it returns a semaphore (or SEM_FAILED) */
73WINPTHREAD_SEMA_API sem_t * sem_open(const char * name, int oflag, mode_t mode, unsigned int value);56WINPTHREAD_API sem_t * sem_open(const char * name, int oflag, mode_t mode, unsigned int value);
7457
75WINPTHREAD_SEMA_API int sem_close(sem_t * sem);58WINPTHREAD_API int sem_close(sem_t * sem);
7659
77WINPTHREAD_SEMA_API int sem_unlink(const char * name);60WINPTHREAD_API int sem_unlink(const char * name);
7861
79WINPTHREAD_SEMA_API int sem_getvalue(sem_t * sem, int * sval);62WINPTHREAD_API int sem_getvalue(sem_t * sem, int * sval);
8063
81#ifdef __cplusplus64#ifdef __cplusplus
82}65}
lib/libc/include/any-windows-any/sensorsapi.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/sensorsapi.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/sensorsapi.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/servprov.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/servprov.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/servprov.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/shldisp.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/shldisp.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/shldisp.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/shlwapi.h+2-2
...@@ -438,8 +438,8 @@ extern "C" {...@@ -438,8 +438,8 @@ extern "C" {
438 LWSTDAPI_(WINBOOL) PathMatchSpecW(LPCWSTR pszFile,LPCWSTR pszSpec);438 LWSTDAPI_(WINBOOL) PathMatchSpecW(LPCWSTR pszFile,LPCWSTR pszSpec);
439 LWSTDAPI_(int) PathParseIconLocationA(LPSTR pszIconFile);439 LWSTDAPI_(int) PathParseIconLocationA(LPSTR pszIconFile);
440 LWSTDAPI_(int) PathParseIconLocationW(LPWSTR pszIconFile);440 LWSTDAPI_(int) PathParseIconLocationW(LPWSTR pszIconFile);
441 LWSTDAPI_(void) PathQuoteSpacesA(LPSTR lpsz);441 LWSTDAPI_(WINBOOL) PathQuoteSpacesA(LPSTR lpsz);
442 LWSTDAPI_(void) PathQuoteSpacesW(LPWSTR lpsz);442 LWSTDAPI_(WINBOOL) PathQuoteSpacesW(LPWSTR lpsz);
443 LWSTDAPI_(WINBOOL) PathRelativePathToA(LPSTR pszPath,LPCSTR pszFrom,DWORD dwAttrFrom,LPCSTR pszTo,DWORD dwAttrTo);443 LWSTDAPI_(WINBOOL) PathRelativePathToA(LPSTR pszPath,LPCSTR pszFrom,DWORD dwAttrFrom,LPCSTR pszTo,DWORD dwAttrTo);
444 LWSTDAPI_(WINBOOL) PathRelativePathToW(LPWSTR pszPath,LPCWSTR pszFrom,DWORD dwAttrFrom,LPCWSTR pszTo,DWORD dwAttrTo);444 LWSTDAPI_(WINBOOL) PathRelativePathToW(LPWSTR pszPath,LPCWSTR pszFrom,DWORD dwAttrFrom,LPCWSTR pszTo,DWORD dwAttrTo);
445 LWSTDAPI_(void) PathRemoveArgsA(LPSTR pszPath);445 LWSTDAPI_(void) PathRemoveArgsA(LPSTR pszPath);
lib/libc/include/any-windows-any/shobjidl.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/shobjidl.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/shobjidl.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/shtypes.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/shtypes.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/shtypes.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/spatialaudioclient.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/spatialaudioclient.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/spatialaudioclient.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/spellcheck.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/spellcheck.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/spellcheck.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/stdio.h+101-26
...@@ -540,8 +540,15 @@ int vsnprintf (char *__stream, size_t __n, const char *__format, __builtin_va_li...@@ -540,8 +540,15 @@ int vsnprintf (char *__stream, size_t __n, const char *__format, __builtin_va_li
540 _CRTIMP int __cdecl _fileno(FILE *_File);540 _CRTIMP int __cdecl _fileno(FILE *_File);
541#ifdef _POSIX_541#ifdef _POSIX_
542 int __cdecl fileno(FILE *_File) __MINGW_ATTRIB_DEPRECATED_MSVC2005;542 int __cdecl fileno(FILE *_File) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
543#endif
544#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
545#pragma push_macro("_tempnam")
546#undef _tempnam
543#endif547#endif
544 _CRTIMP char *__cdecl _tempnam(const char *_DirName,const char *_FilePrefix);548 _CRTIMP char *__cdecl _tempnam(const char *_DirName,const char *_FilePrefix);
549#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
550#pragma pop_macro("_tempnam")
551#endif
545 _CRTIMP int __cdecl _flushall(void);552 _CRTIMP int __cdecl _flushall(void);
546 FILE *__cdecl fopen(const char * __restrict__ _Filename,const char * __restrict__ _Mode) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;553 FILE *__cdecl fopen(const char * __restrict__ _Filename,const char * __restrict__ _Mode) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
547 FILE *fopen64(const char * __restrict__ filename,const char * __restrict__ mode);554 FILE *fopen64(const char * __restrict__ filename,const char * __restrict__ mode);
...@@ -915,10 +922,10 @@ int vsprintf (char * __restrict__ __stream, const char * __restrict__ __format,...@@ -915,10 +922,10 @@ int vsprintf (char * __restrict__ __stream, const char * __restrict__ __format,
915 int __cdecl __mingw_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);922 int __cdecl __mingw_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);
916/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)923/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
917 int __cdecl __mingw_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);924 int __cdecl __mingw_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);
918/* __attribute__((__format__ (gnu_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)925/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
919 int __cdecl __mingw_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);926 int __cdecl __mingw_swprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , ...);
920/* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)927/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
921 int __cdecl __mingw_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list);928 int __cdecl __mingw_vswprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ ,va_list);
922929
923/* __attribute__((__format__ (ms_wscanf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)930/* __attribute__((__format__ (ms_wscanf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
924 int __cdecl __ms_swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...);931 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,...@@ -935,10 +942,10 @@ int vsprintf (char * __restrict__ __stream, const char * __restrict__ __format,
935 int __cdecl __ms_vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);942 int __cdecl __ms_vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);
936/*__attribute__((__format__ (ms_wprintf, 1, 0))) */ __MINGW_ATTRIB_NONNULL(1)943/*__attribute__((__format__ (ms_wprintf, 1, 0))) */ __MINGW_ATTRIB_NONNULL(1)
937 int __cdecl __ms_vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);944 int __cdecl __ms_vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
938/* __attribute__((__format__ (ms_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)945/* __attribute__((__format__ (ms_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
939 int __cdecl __ms_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);946 int __cdecl __ms_swprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , ...);
940/* __attribute__((__format__ (ms_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)947/* __attribute__((__format__ (ms_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
941 int __cdecl __ms_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list);948 int __cdecl __ms_vswprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ ,va_list);
942949
943#ifdef _UCRT950#ifdef _UCRT
944 int __cdecl __stdio_common_vswprintf(unsigned __int64 options, wchar_t *str, size_t len, const wchar_t *format, _locale_t locale, va_list valist);951 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);...@@ -996,6 +1003,32 @@ __MINGW_ASM_CALL(__mingw_vfwprintf);
996int vwprintf (const wchar_t *__format, __builtin_va_list __local_argv)1003int vwprintf (const wchar_t *__format, __builtin_va_list __local_argv)
997__MINGW_ASM_CALL(__mingw_vwprintf);1004__MINGW_ASM_CALL(__mingw_vwprintf);
9981005
1006/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
1007int swprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, ...)
1008__MINGW_ASM_CALL(__mingw_swprintf);
1009
1010#if __MINGW_FORTIFY_VA_ARG
1011
1012__mingw_bos_extern_ovr
1013/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
1014int swprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, ...)
1015{
1016 __mingw_bos_ptr_chk_warn(__stream, __n * sizeof(wchar_t), 1);
1017 return __mingw_swprintf( __stream, __n, __format, __builtin_va_arg_pack() );
1018}
1019
1020#endif /* __MINGW_FORTIFY_VA_ARG */
1021
1022__mingw_bos_ovr
1023/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
1024int vswprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builtin_va_list __local_argv)
1025{
1026#if __MINGW_FORTIFY_LEVEL > 0
1027 __mingw_bos_ptr_chk_warn(__stream, __n * sizeof(wchar_t), 1);
1028#endif
1029 return __mingw_vswprintf( __stream, __n, __format, __local_argv );
1030}
1031
999#ifndef __NO_ISOCEXT /* externs in libmingwex.a */1032#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
10001033
1001/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)1034/* __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...@@ -1023,6 +1056,7 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
1023#endif1056#endif
1024 return __mingw_vsnwprintf( __stream, __n, __format, __local_argv );1057 return __mingw_vsnwprintf( __stream, __n, __format, __local_argv );
1025}1058}
1059
1026#endif /* __NO_ISOCEXT */1060#endif /* __NO_ISOCEXT */
10271061
1028#else /* !__USE_MINGW_ANSI_STDIO */1062#else /* !__USE_MINGW_ANSI_STDIO */
...@@ -1170,7 +1204,45 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti...@@ -1170,7 +1204,45 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
11701204
1171#if __USE_MINGW_ANSI_STDIO == 01205#if __USE_MINGW_ANSI_STDIO == 0
1172 __mingw_ovr1206 __mingw_ovr
1173 int snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...)1207 int __cdecl swprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...)
1208 {
1209 __builtin_va_list __ap;
1210 int __ret;
1211 /*
1212 * __stdio_common_vswprintf() for case _Dest == NULL and _Count == 0 and
1213 * without _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR option, is
1214 * executed in "standard snprintf behavior" and returns number of (wide)
1215 * chars required to allocate. For all other cases it is executed in a way
1216 * that returns negative value on error. But C95+ compliant swprintf() for
1217 * case _Count == 0 returns negative value, so handle this case specially.
1218 */
1219 if (_Dest == NULL && _Count == 0)
1220 return -1;
1221 __builtin_va_start(__ap, _Format);
1222 __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Dest, _Count, _Format, NULL, __ap);
1223 __builtin_va_end(__ap);
1224 return __ret < 0 ? -1 : __ret;
1225 }
1226 __mingw_ovr
1227 int __cdecl vswprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,va_list _Args)
1228 {
1229 int __ret;
1230 /*
1231 * __stdio_common_vswprintf() for case _Dest == NULL and _Count == 0 and
1232 * without _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR option, is
1233 * executed in "standard snprintf behavior" and returns number of (wide)
1234 * chars required to allocate. For all other cases it is executed in a way
1235 * that returns negative value on error. But C95+ compliant vswprintf() for
1236 * case _Count == 0 returns negative value, so handle this case specially.
1237 */
1238 if (_Dest == NULL && _Count == 0)
1239 return -1;
1240 __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Dest, _Count, _Format, NULL, _Args);
1241 return __ret < 0 ? -1 : __ret;
1242 }
1243
1244 __mingw_ovr
1245 int __cdecl snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...)
1174 {1246 {
1175 __builtin_va_list __ap;1247 __builtin_va_list __ap;
1176 int __ret;1248 int __ret;
...@@ -1182,8 +1254,7 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti...@@ -1182,8 +1254,7 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
1182 __mingw_ovr1254 __mingw_ovr
1183 int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg)1255 int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg)
1184 {1256 {
1185 int __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, s, n, format, NULL, arg);1257 return __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, s, n, format, NULL, arg);
1186 return __ret < 0 ? -1 : __ret;
1187 }1258 }
1188#endif1259#endif
11891260
...@@ -1222,26 +1293,16 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti...@@ -1222,26 +1293,16 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
1222#if __USE_MINGW_ANSI_STDIO == 01293#if __USE_MINGW_ANSI_STDIO == 0
1223 int __cdecl __ms_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);1294 int __cdecl __ms_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);
1224 int __cdecl __ms_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);1295 int __cdecl __ms_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);
1225 __mingw_ovr1296 int __cdecl snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...) __MINGW_ASM_CALL(__ms_snwprintf);
1226 int snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...)1297 int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg) __MINGW_ASM_CALL(__ms_vsnwprintf);
1227 {
1228 int r;
1229 va_list argp;
1230 __builtin_va_start (argp, format);
1231 r = _vsnwprintf (s, n, format, argp);
1232 __builtin_va_end (argp);
1233 return r;
1234 }
1235 __mingw_ovr
1236 int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg)
1237 {
1238 return _vsnwprintf(s,n,format,arg);
1239 }
1240#endif1298#endif
12411299
1242#endif /* ! __NO_ISOCEXT */1300#endif /* ! __NO_ISOCEXT */
1243 _CRTIMP int __cdecl _swprintf(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,...);1301 _CRTIMP int __cdecl _swprintf(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,...);
1244 _CRTIMP int __cdecl _vswprintf(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,va_list _Args);1302 _CRTIMP int __cdecl _vswprintf(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,va_list _Args);
1303
1304 int __cdecl swprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...);
1305 int __cdecl vswprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,va_list _Args);
1245#endif /* _UCRT */1306#endif /* _UCRT */
12461307
1247#ifndef RC_INVOKED1308#ifndef RC_INVOKED
...@@ -1255,7 +1316,14 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti...@@ -1255,7 +1316,14 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
1255#endif1316#endif
1256#endif1317#endif
12571318
1319#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
1320#pragma push_macro("_wtempnam")
1321#undef _wtempnam
1322#endif
1258 _CRTIMP wchar_t *__cdecl _wtempnam(const wchar_t *_Directory,const wchar_t *_FilePrefix);1323 _CRTIMP wchar_t *__cdecl _wtempnam(const wchar_t *_Directory,const wchar_t *_FilePrefix);
1324#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
1325#pragma pop_macro("_wtempnam")
1326#endif
1259 _CRTIMP int __cdecl _snwscanf(const wchar_t * __restrict__ _Src,size_t _MaxCount,const wchar_t * __restrict__ _Format,...);1327 _CRTIMP int __cdecl _snwscanf(const wchar_t * __restrict__ _Src,size_t _MaxCount,const wchar_t * __restrict__ _Format,...);
1260 _CRTIMP FILE *__cdecl _wfdopen(int _FileHandle ,const wchar_t *_Mode);1328 _CRTIMP FILE *__cdecl _wfdopen(int _FileHandle ,const wchar_t *_Mode);
1261 _CRTIMP FILE *__cdecl _wfopen(const wchar_t * __restrict__ _Filename,const wchar_t *__restrict__ _Mode) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;1329 _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...@@ -1333,7 +1401,14 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
1333#define P_tmpdir _P_tmpdir1401#define P_tmpdir _P_tmpdir
1334#define SYS_OPEN _SYS_OPEN1402#define SYS_OPEN _SYS_OPEN
13351403
1404#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
1405#pragma push_macro("tempnam")
1406#undef tempnam
1407#endif
1336 char *__cdecl tempnam(const char *_Directory,const char *_FilePrefix) __MINGW_ATTRIB_DEPRECATED_MSVC2005;1408 char *__cdecl tempnam(const char *_Directory,const char *_FilePrefix) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
1409#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
1410#pragma pop_macro("tempnam")
1411#endif
1337 int __cdecl fcloseall(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;1412 int __cdecl fcloseall(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
1338 FILE *__cdecl fdopen(int _FileHandle,const char *_Format) __MINGW_ATTRIB_DEPRECATED_MSVC2005;1413 FILE *__cdecl fdopen(int _FileHandle,const char *_Format) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
1339 int __cdecl fgetchar(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;1414 int __cdecl fgetchar(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
lib/libc/include/any-windows-any/stdlib.h+63
...@@ -419,6 +419,36 @@ float __cdecl __MINGW_NOTHROW strtof(const char * __restrict__ _Str,char ** __re...@@ -419,6 +419,36 @@ float __cdecl __MINGW_NOTHROW strtof(const char * __restrict__ _Str,char ** __re
419419
420#ifndef _CRT_ALLOCATION_DEFINED420#ifndef _CRT_ALLOCATION_DEFINED
421#define _CRT_ALLOCATION_DEFINED421#define _CRT_ALLOCATION_DEFINED
422
423#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
424#pragma push_macro("calloc")
425#undef calloc
426#pragma push_macro("free")
427#undef free
428#pragma push_macro("malloc")
429#undef malloc
430#pragma push_macro("realloc")
431#undef realloc
432#pragma push_macro("_aligned_free")
433#undef _aligned_free
434#pragma push_macro("_aligned_malloc")
435#undef _aligned_malloc
436#pragma push_macro("_aligned_offset_malloc")
437#undef _aligned_offset_malloc
438#pragma push_macro("_aligned_realloc")
439#undef _aligned_realloc
440#pragma push_macro("_aligned_offset_realloc")
441#undef _aligned_offset_realloc
442#pragma push_macro("_recalloc")
443#undef _recalloc
444#pragma push_macro("_aligned_recalloc")
445#undef _aligned_recalloc
446#pragma push_macro("_aligned_offset_recalloc")
447#undef _aligned_offset_recalloc
448#pragma push_macro("_aligned_msize")
449#undef _aligned_msize
450#endif
451
422 void *__cdecl calloc(size_t _NumOfElements,size_t _SizeOfElements);452 void *__cdecl calloc(size_t _NumOfElements,size_t _SizeOfElements);
423 void __cdecl free(void *_Memory);453 void __cdecl free(void *_Memory);
424 void *__cdecl malloc(size_t _Size);454 void *__cdecl malloc(size_t _Size);
...@@ -434,6 +464,23 @@ float __cdecl __MINGW_NOTHROW strtof(const char * __restrict__ _Str,char ** __re...@@ -434,6 +464,23 @@ float __cdecl __MINGW_NOTHROW strtof(const char * __restrict__ _Str,char ** __re
434 _CRTIMP void *__cdecl _aligned_offset_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment,size_t _Offset);464 _CRTIMP void *__cdecl _aligned_offset_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment,size_t _Offset);
435 _CRTIMP size_t __cdecl _aligned_msize(void *_Memory,size_t _Alignment,size_t _Offset);465 _CRTIMP size_t __cdecl _aligned_msize(void *_Memory,size_t _Alignment,size_t _Offset);
436# endif466# endif
467
468#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
469#pragma pop_macro("calloc")
470#pragma pop_macro("free")
471#pragma pop_macro("malloc")
472#pragma pop_macro("realloc")
473#pragma pop_macro("_aligned_free")
474#pragma pop_macro("_aligned_malloc")
475#pragma pop_macro("_aligned_offset_malloc")
476#pragma pop_macro("_aligned_realloc")
477#pragma pop_macro("_aligned_offset_realloc")
478#pragma pop_macro("_recalloc")
479#pragma pop_macro("_aligned_recalloc")
480#pragma pop_macro("_aligned_offset_recalloc")
481#pragma pop_macro("_aligned_msize")
482#endif
483
437#endif484#endif
438485
439#ifndef _WSTDLIB_DEFINED486#ifndef _WSTDLIB_DEFINED
...@@ -497,7 +544,16 @@ float __cdecl __MINGW_NOTHROW strtof(const char * __restrict__ _Str,char ** __re...@@ -497,7 +544,16 @@ float __cdecl __MINGW_NOTHROW strtof(const char * __restrict__ _Str,char ** __re
497544
498#ifndef _POSIX_545#ifndef _POSIX_
499#define _CVTBUFSIZE (309+40)546#define _CVTBUFSIZE (309+40)
547
548#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
549#pragma push_macro("_fullpath")
550#undef _fullpath
551#endif
500 _CRTIMP char *__cdecl _fullpath(char *_FullPath,const char *_Path,size_t _SizeInBytes);552 _CRTIMP char *__cdecl _fullpath(char *_FullPath,const char *_Path,size_t _SizeInBytes);
553#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
554#pragma pop_macro("_fullpath")
555#endif
556
501 _CRTIMP char *__cdecl _ecvt(double _Val,int _NumOfDigits,int *_PtDec,int *_PtSign) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;557 _CRTIMP char *__cdecl _ecvt(double _Val,int _NumOfDigits,int *_PtDec,int *_PtSign) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
502 _CRTIMP char *__cdecl _fcvt(double _Val,int _NumOfDec,int *_PtDec,int *_PtSign) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;558 _CRTIMP char *__cdecl _fcvt(double _Val,int _NumOfDec,int *_PtDec,int *_PtSign) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
503 _CRTIMP char *__cdecl _gcvt(double _Val,int _NumOfDigits,char *_DstBuf) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;559 _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);...@@ -559,7 +615,14 @@ unsigned long __cdecl _lrotr(unsigned long,int);
559615
560#ifndef _WSTDLIBP_DEFINED616#ifndef _WSTDLIBP_DEFINED
561#define _WSTDLIBP_DEFINED617#define _WSTDLIBP_DEFINED
618#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
619#pragma push_macro("_wfullpath")
620#undef _wfullpath
621#endif
562 _CRTIMP wchar_t *__cdecl _wfullpath(wchar_t *_FullPath,const wchar_t *_Path,size_t _SizeInWords);622 _CRTIMP wchar_t *__cdecl _wfullpath(wchar_t *_FullPath,const wchar_t *_Path,size_t _SizeInWords);
623#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
624#pragma pop_macro("_wfullpath")
625#endif
563 _CRTIMP void __cdecl _wmakepath(wchar_t *_ResultPath,const wchar_t *_Drive,const wchar_t *_Dir,const wchar_t *_Filename,const wchar_t *_Ext);626 _CRTIMP void __cdecl _wmakepath(wchar_t *_ResultPath,const wchar_t *_Drive,const wchar_t *_Dir,const wchar_t *_Filename,const wchar_t *_Ext);
564#ifndef _CRT_WPERROR_DEFINED627#ifndef _CRT_WPERROR_DEFINED
565#define _CRT_WPERROR_DEFINED628#define _CRT_WPERROR_DEFINED
lib/libc/include/any-windows-any/string.h+28
...@@ -64,7 +64,14 @@ extern "C" {...@@ -64,7 +64,14 @@ extern "C" {
64 size_t __cdecl strlen(const char *_Str);64 size_t __cdecl strlen(const char *_Str);
65 size_t __cdecl strnlen(const char *_Str,size_t _MaxCount);65 size_t __cdecl strnlen(const char *_Str,size_t _MaxCount);
66 void *__cdecl memmove(void *_Dst,const void *_Src,size_t _Size) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;66 void *__cdecl memmove(void *_Dst,const void *_Src,size_t _Size) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
67#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
68#pragma push_macro("_strdup")
69#undef _strdup
70#endif
67 _CRTIMP char *__cdecl _strdup(const char *_Src);71 _CRTIMP char *__cdecl _strdup(const char *_Src);
72#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
73#pragma pop_macro("_strdup")
74#endif
68 _CONST_RETURN char *__cdecl strchr(const char *_Str,int _Val);75 _CONST_RETURN char *__cdecl strchr(const char *_Str,int _Val);
69 _CRTIMP int __cdecl _stricmp(const char *_Str1,const char *_Str2);76 _CRTIMP int __cdecl _stricmp(const char *_Str1,const char *_Str2);
70 _CRTIMP int __cdecl _strcmpi(const char *_Str1,const char *_Str2);77 _CRTIMP int __cdecl _strcmpi(const char *_Str1,const char *_Str2);
...@@ -105,7 +112,14 @@ extern "C" {...@@ -105,7 +112,14 @@ extern "C" {
105 _CRTIMP size_t __cdecl _strxfrm_l(char * __restrict__ _Dst,const char * __restrict__ _Src,size_t _MaxCount,_locale_t _Locale);112 _CRTIMP size_t __cdecl _strxfrm_l(char * __restrict__ _Dst,const char * __restrict__ _Src,size_t _MaxCount,_locale_t _Locale);
106113
107#ifndef NO_OLDNAMES114#ifndef NO_OLDNAMES
115#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
116#pragma push_macro("strdup")
117#undef strdup
118#endif
108 char *__cdecl strdup(const char *_Src) __MINGW_ATTRIB_DEPRECATED_MSVC2005;119 char *__cdecl strdup(const char *_Src) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
120#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
121#pragma pop_macro("strdup")
122#endif
109 int __cdecl strcmpi(const char *_Str1,const char *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005;123 int __cdecl strcmpi(const char *_Str1,const char *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
110 int __cdecl stricmp(const char *_Str1,const char *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005;124 int __cdecl stricmp(const char *_Str1,const char *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
111 char *__cdecl strlwr(char *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;125 char *__cdecl strlwr(char *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
...@@ -128,7 +142,14 @@ extern "C" {...@@ -128,7 +142,14 @@ extern "C" {
128#ifndef _WSTRING_DEFINED142#ifndef _WSTRING_DEFINED
129#define _WSTRING_DEFINED143#define _WSTRING_DEFINED
130144
145#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
146#pragma push_macro("_wcsdup")
147#undef _wcsdup
148#endif
131 _CRTIMP wchar_t *__cdecl _wcsdup(const wchar_t *_Str);149 _CRTIMP wchar_t *__cdecl _wcsdup(const wchar_t *_Str);
150#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
151#pragma pop_macro("_wcsdup")
152#endif
132 wchar_t *__cdecl wcscat(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Source) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;153 wchar_t *__cdecl wcscat(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Source) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
133 _CONST_RETURN wchar_t *__cdecl wcschr(const wchar_t *_Str,wchar_t _Ch);154 _CONST_RETURN wchar_t *__cdecl wcschr(const wchar_t *_Str,wchar_t _Ch);
134 int __cdecl wcscmp(const wchar_t *_Str1,const wchar_t *_Str2);155 int __cdecl wcscmp(const wchar_t *_Str1,const wchar_t *_Str2);
...@@ -177,7 +198,14 @@ extern "C" {...@@ -177,7 +198,14 @@ extern "C" {
177 _CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);198 _CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
178199
179#ifndef NO_OLDNAMES200#ifndef NO_OLDNAMES
201#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
202#pragma push_macro("wcsdup")
203#undef wcsdup
204#endif
180 wchar_t *__cdecl wcsdup(const wchar_t *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;205 wchar_t *__cdecl wcsdup(const wchar_t *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
206#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
207#pragma pop_macro("wcsdup")
208#endif
181#define wcswcs wcsstr209#define wcswcs wcsstr
182 int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005;210 int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
183 int __cdecl wcsnicmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount) __MINGW_ATTRIB_DEPRECATED_MSVC2005;211 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-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/strmif.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/strmif.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/structuredquerycondition.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/structuredquerycondition.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/structuredquerycondition.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/swprintf.inl+5-29
...@@ -9,26 +9,6 @@...@@ -9,26 +9,6 @@
99
10#include <vadefs.h>10#include <vadefs.h>
1111
12__mingw_ovr
13/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
14int vswprintf (wchar_t *__stream, size_t __count, const wchar_t *__format, __builtin_va_list __local_argv)
15{
16 return vsnwprintf( __stream, __count, __format, __local_argv );
17}
18
19__mingw_ovr
20/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
21int swprintf (wchar_t *__stream, size_t __count, const wchar_t *__format, ...)
22{
23 int __retval;
24 __builtin_va_list __local_argv;
25
26 __builtin_va_start( __local_argv, __format );
27 __retval = vswprintf( __stream, __count, __format, __local_argv );
28 __builtin_va_end( __local_argv );
29 return __retval;
30}
31
32#ifdef __cplusplus12#ifdef __cplusplus
3313
34extern "C++" {14extern "C++" {
...@@ -37,17 +17,15 @@ __mingw_ovr...@@ -37,17 +17,15 @@ __mingw_ovr
37/* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)17/* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
38int vswprintf (wchar_t *__stream, const wchar_t *__format, __builtin_va_list __local_argv)18int vswprintf (wchar_t *__stream, const wchar_t *__format, __builtin_va_list __local_argv)
39{19{
40#if __USE_MINGW_ANSI_STDIO
41 return __mingw_vswprintf( __stream, __format, __local_argv );
42#else
43 return _vswprintf( __stream, __format, __local_argv );20 return _vswprintf( __stream, __format, __local_argv );
44#endif
45}21}
4622
47__mingw_ovr23__mingw_ovr
48/* __attribute__((__format__ (gnu_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)24/* __attribute__((__format__ (gnu_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
49int swprintf (wchar_t *__stream, const wchar_t *__format, ...)25int swprintf (wchar_t *__stream, const wchar_t *__format, ...)
50{26{
27#ifdef __clang__
28 /* clang does not support __builtin_va_arg_pack(), so forward swprintf() to vswprintf() */
51 int __retval;29 int __retval;
52 __builtin_va_list __local_argv;30 __builtin_va_list __local_argv;
5331
...@@ -55,19 +33,17 @@ int swprintf (wchar_t *__stream, const wchar_t *__format, ...)...@@ -55,19 +33,17 @@ int swprintf (wchar_t *__stream, const wchar_t *__format, ...)
55 __retval = vswprintf( __stream, __format, __local_argv );33 __retval = vswprintf( __stream, __format, __local_argv );
56 __builtin_va_end( __local_argv );34 __builtin_va_end( __local_argv );
57 return __retval;35 return __retval;
36#else
37 return _swprintf( __stream, __format, __builtin_va_arg_pack() );
38#endif
58}39}
5940
60}41}
6142
62#elif defined(_CRT_NON_CONFORMING_SWPRINTFS)43#elif defined(_CRT_NON_CONFORMING_SWPRINTFS)
6344
64#if __USE_MINGW_ANSI_STDIO
65#define swprintf __mingw_swprintf
66#define vswprintf __mingw_vswprintf
67#else
68#define swprintf _swprintf45#define swprintf _swprintf
69#define vswprintf _vswprintf46#define vswprintf _vswprintf
70#endif
7147
72#endif /* __cplusplus */48#endif /* __cplusplus */
7349
lib/libc/include/any-windows-any/systemmediatransportcontrolsinterop.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/systemmediatransportcontrolsinterop.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/systemmediatransportcontrolsinterop.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/taskschd.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/taskschd.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/taskschd.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/tchar.h+49-34
...@@ -133,7 +133,7 @@ extern "C" {...@@ -133,7 +133,7 @@ extern "C" {
133#define _tenviron _wenviron133#define _tenviron _wenviron
134#define __targv __wargv134#define __targv __wargv
135135
136#define _tprintf wprintf136#define _tprintf __ms_wprintf
137#define _tprintf_l _wprintf_l137#define _tprintf_l _wprintf_l
138#define _tprintf_p _wprintf_p138#define _tprintf_p _wprintf_p
139#define _tprintf_p_l _wprintf_p_l139#define _tprintf_p_l _wprintf_p_l
...@@ -145,11 +145,11 @@ extern "C" {...@@ -145,11 +145,11 @@ extern "C" {
145#define _vtcprintf_l _vcwprintf_l145#define _vtcprintf_l _vcwprintf_l
146#define _vtcprintf_p _vcwprintf_p146#define _vtcprintf_p _vcwprintf_p
147#define _vtcprintf_p_l _vcwprintf_p_l147#define _vtcprintf_p_l _vcwprintf_p_l
148#define _ftprintf fwprintf148#define _ftprintf __ms_fwprintf
149#define _ftprintf_l _fwprintf_l149#define _ftprintf_l _fwprintf_l
150#define _ftprintf_p _fwprintf_p150#define _ftprintf_p _fwprintf_p
151#define _ftprintf_p_l _fwprintf_p_l151#define _ftprintf_p_l _fwprintf_p_l
152#define _stprintf swprintf152#define _stprintf _swprintf
153#define _stprintf_l __swprintf_l153#define _stprintf_l __swprintf_l
154#define _stprintf_p _swprintf_p154#define _stprintf_p _swprintf_p
155#define _stprintf_p_l _swprintf_p_l155#define _stprintf_p_l _swprintf_p_l
...@@ -159,15 +159,15 @@ extern "C" {...@@ -159,15 +159,15 @@ extern "C" {
159#define _sctprintf_p_l _scwprintf_p_l159#define _sctprintf_p_l _scwprintf_p_l
160#define _sntprintf _snwprintf160#define _sntprintf _snwprintf
161#define _sntprintf_l _snwprintf_l161#define _sntprintf_l _snwprintf_l
162#define _vtprintf vwprintf162#define _vtprintf __ms_vwprintf
163#define _vtprintf_l _vwprintf_l163#define _vtprintf_l _vwprintf_l
164#define _vtprintf_p _vwprintf_p164#define _vtprintf_p _vwprintf_p
165#define _vtprintf_p_l _vwprintf_p_l165#define _vtprintf_p_l _vwprintf_p_l
166#define _vftprintf vfwprintf166#define _vftprintf __ms_vfwprintf
167#define _vftprintf_l _vfwprintf_l167#define _vftprintf_l _vfwprintf_l
168#define _vftprintf_p _vfwprintf_p168#define _vftprintf_p _vfwprintf_p
169#define _vftprintf_p_l _vfwprintf_p_l169#define _vftprintf_p_l _vfwprintf_p_l
170#define _vstprintf vswprintf170#define _vstprintf _vswprintf
171#define _vstprintf_l _vswprintf_l171#define _vstprintf_l _vswprintf_l
172#define _vstprintf_p _vswprintf_p172#define _vstprintf_p _vswprintf_p
173#define _vstprintf_p_l _vswprintf_p_l173#define _vstprintf_p_l _vswprintf_p_l
...@@ -178,13 +178,13 @@ extern "C" {...@@ -178,13 +178,13 @@ extern "C" {
178#define _vsntprintf _vsnwprintf178#define _vsntprintf _vsnwprintf
179#define _vsntprintf_l _vsnwprintf_l179#define _vsntprintf_l _vsnwprintf_l
180180
181#define _tscanf wscanf181#define _tscanf __ms_wscanf
182#define _tscanf_l _wscanf_l182#define _tscanf_l _wscanf_l
183#define _tcscanf _cwscanf183#define _tcscanf _cwscanf
184#define _tcscanf_l _cwscanf_l184#define _tcscanf_l _cwscanf_l
185#define _ftscanf fwscanf185#define _ftscanf __ms_fwscanf
186#define _ftscanf_l _fwscanf_l186#define _ftscanf_l _fwscanf_l
187#define _stscanf swscanf187#define _stscanf __ms_swscanf
188#define _stscanf_l _swscanf_l188#define _stscanf_l _swscanf_l
189#define _sntscanf _snwscanf189#define _sntscanf _snwscanf
190#define _sntscanf_l _snwscanf_l190#define _sntscanf_l _snwscanf_l
...@@ -404,6 +404,21 @@ extern "C" {...@@ -404,6 +404,21 @@ extern "C" {
404404
405#define _tsetlocale _wsetlocale405#define _tsetlocale _wsetlocale
406406
407#if __MSVCRT_VERSION__ >= 0x800
408#define _fgettc_nolock _fgetwc_nolock
409#define _fputtc_nolock _fputwc_nolock
410#define _gettc_nolock _getwc_nolock
411#define _gettch_nolock _getwch_nolock
412#define _gettche_nolock _getwche_nolock
413#define _gettchar_nolock _getwchar_nolock
414#define _puttc_nolock _putwc_nolock
415#define _puttchar_nolock _putwchar_nolock
416#define _puttch_nolock _putwch_nolock
417#define _ungettc_nolock _ungetwc_nolock
418#define _ungettch_nolock _ungetwch_nolock
419#define _tgetdcwd_nolock _wgetdcwd_nolock
420#endif
421
407#define _tcsclen wcslen422#define _tcsclen wcslen
408#define _tcscnlen wcsnlen423#define _tcscnlen wcsnlen
409#define _tcsclen_l(_String,_Locale) wcslen(_String)424#define _tcsclen_l(_String,_Locale) wcslen(_String)
...@@ -457,6 +472,10 @@ extern "C" {...@@ -457,6 +472,10 @@ extern "C" {
457#define _istupper_l _iswupper_l472#define _istupper_l _iswupper_l
458#define _istxdigit iswxdigit473#define _istxdigit iswxdigit
459#define _istxdigit_l _iswxdigit_l474#define _istxdigit_l _iswxdigit_l
475#define _istblank iswblank
476#if __MSVCRT_VERSION__ >= 0xC00
477#define _istblank_l _iswblank_l
478#endif /* msvcr120 */
460479
461#define _totupper towupper480#define _totupper towupper
462#define _totupper_l _towupper_l481#define _totupper_l _towupper_l
...@@ -493,7 +512,7 @@ extern "C" {...@@ -493,7 +512,7 @@ extern "C" {
493512
494#endif /* __CYGWIN__ */513#endif /* __CYGWIN__ */
495514
496#else515#else /* _UNICODE */
497516
498#ifdef __cplusplus517#ifdef __cplusplus
499}518}
...@@ -520,7 +539,7 @@ extern "C" {...@@ -520,7 +539,7 @@ extern "C" {
520#endif539#endif
521#define __targv __argv540#define __targv __argv
522541
523#define _tprintf printf542#define _tprintf __ms_printf
524#define _tprintf_l _printf_l543#define _tprintf_l _printf_l
525#define _tprintf_p _printf_p544#define _tprintf_p _printf_p
526#define _tprintf_p_l _printf_p_l545#define _tprintf_p_l _printf_p_l
...@@ -532,11 +551,11 @@ extern "C" {...@@ -532,11 +551,11 @@ extern "C" {
532#define _vtcprintf_l _vcprintf_l551#define _vtcprintf_l _vcprintf_l
533#define _vtcprintf_p _vcprintf_p552#define _vtcprintf_p _vcprintf_p
534#define _vtcprintf_p_l _vcprintf_p_l553#define _vtcprintf_p_l _vcprintf_p_l
535#define _ftprintf fprintf554#define _ftprintf __ms_fprintf
536#define _ftprintf_l _fprintf_l555#define _ftprintf_l _fprintf_l
537#define _ftprintf_p _fprintf_p556#define _ftprintf_p _fprintf_p
538#define _ftprintf_p_l _fprintf_p_l557#define _ftprintf_p_l _fprintf_p_l
539#define _stprintf sprintf558#define _stprintf __ms_sprintf
540#define _stprintf_l _sprintf_l559#define _stprintf_l _sprintf_l
541#define _stprintf_p _sprintf_p560#define _stprintf_p _sprintf_p
542#define _stprintf_p_l _sprintf_p_l561#define _stprintf_p_l _sprintf_p_l
...@@ -546,15 +565,15 @@ extern "C" {...@@ -546,15 +565,15 @@ extern "C" {
546#define _sctprintf_p_l _scprintf_p_l565#define _sctprintf_p_l _scprintf_p_l
547#define _sntprintf _snprintf566#define _sntprintf _snprintf
548#define _sntprintf_l _snprintf_l567#define _sntprintf_l _snprintf_l
549#define _vtprintf vprintf568#define _vtprintf __ms_vprintf
550#define _vtprintf_l _vprintf_l569#define _vtprintf_l _vprintf_l
551#define _vtprintf_p _vprintf_p570#define _vtprintf_p _vprintf_p
552#define _vtprintf_p_l _vprintf_p_l571#define _vtprintf_p_l _vprintf_p_l
553#define _vftprintf vfprintf572#define _vftprintf __ms_vfprintf
554#define _vftprintf_l _vfprintf_l573#define _vftprintf_l _vfprintf_l
555#define _vftprintf_p _vfprintf_p574#define _vftprintf_p _vfprintf_p
556#define _vftprintf_p_l _vfprintf_p_l575#define _vftprintf_p_l _vfprintf_p_l
557#define _vstprintf vsprintf576#define _vstprintf __ms_vsprintf
558#define _vstprintf_l _vsprintf_l577#define _vstprintf_l _vsprintf_l
559#define _vstprintf_p _vsprintf_p578#define _vstprintf_p _vsprintf_p
560#define _vstprintf_p_l _vsprintf_p_l579#define _vstprintf_p_l _vsprintf_p_l
...@@ -565,13 +584,13 @@ extern "C" {...@@ -565,13 +584,13 @@ extern "C" {
565#define _vsntprintf _vsnprintf584#define _vsntprintf _vsnprintf
566#define _vsntprintf_l _vsnprintf_l585#define _vsntprintf_l _vsnprintf_l
567586
568#define _tscanf scanf587#define _tscanf __ms_scanf
569#define _tscanf_l _scanf_l588#define _tscanf_l _scanf_l
570#define _tcscanf _cscanf589#define _tcscanf _cscanf
571#define _tcscanf_l _cscanf_l590#define _tcscanf_l _cscanf_l
572#define _ftscanf fscanf591#define _ftscanf __ms_fscanf
573#define _ftscanf_l _fscanf_l592#define _ftscanf_l _fscanf_l
574#define _stscanf sscanf593#define _stscanf __ms_sscanf
575#define _stscanf_l _sscanf_l594#define _stscanf_l _sscanf_l
576#define _sntscanf _snscanf595#define _sntscanf _snscanf
577#define _sntscanf_l _snscanf_l596#define _sntscanf_l _snscanf_l
...@@ -769,18 +788,6 @@ extern "C" {...@@ -769,18 +788,6 @@ extern "C" {
769#define _tsetlocale setlocale788#define _tsetlocale setlocale
770789
771#if __MSVCRT_VERSION__ >= 0x800790#if __MSVCRT_VERSION__ >= 0x800
772#define _fgettc_nolock _fgetwc_nolock
773#define _fputtc_nolock _fputwc_nolock
774#define _gettc_nolock _getwc_nolock
775#define _gettch_nolock _getwch_nolock
776#define _gettche_nolock _getwche_nolock
777#define _gettchar_nolock _getwchar_nolock
778#define _puttc_nolock _putwc_nolock
779#define _puttchar_nolock _putwchar_nolock
780#define _puttch_nolock _putwch_nolock
781#define _ungettc_nolock _ungetwc_nolock
782#define _ungettch_nolock _ungetwch_nolock
783#define _tgetdcwd_nolock _wgetdcwd_nolock
784#define _fgettc_nolock _fgetc_nolock791#define _fgettc_nolock _fgetc_nolock
785#define _fputtc_nolock _fputc_nolock792#define _fputtc_nolock _fputc_nolock
786#define _gettc_nolock _getc_nolock793#define _gettc_nolock _getc_nolock
...@@ -997,6 +1004,10 @@ extern "C" {...@@ -997,6 +1004,10 @@ extern "C" {
997#define _istspace_l _ismbcspace_l1004#define _istspace_l _ismbcspace_l
998#define _istupper _ismbcupper1005#define _istupper _ismbcupper
999#define _istupper_l _ismbcupper_l1006#define _istupper_l _ismbcupper_l
1007#define _istblank _ismbcblank
1008#if __MSVCRT_VERSION__ >= 0xC00
1009#define _istblank_l _ismbcblank_l
1010#endif /* msvcr120 */
10001011
1001#define _totupper _mbctoupper1012#define _totupper _mbctoupper
1002#define _totupper_l _mbctoupper_l1013#define _totupper_l _mbctoupper_l
...@@ -1009,7 +1020,7 @@ extern "C" {...@@ -1009,7 +1020,7 @@ extern "C" {
10091020
1010#endif /* __CYGWIN__ */1021#endif /* __CYGWIN__ */
10111022
1012#else1023#else /* _MBCS */
10131024
1014#ifndef __TCHAR_DEFINED1025#ifndef __TCHAR_DEFINED
1015#define __TCHAR_DEFINED1026#define __TCHAR_DEFINED
...@@ -1134,6 +1145,10 @@ extern "C" {...@@ -1134,6 +1145,10 @@ extern "C" {
1134#define _istspace_l _isspace_l1145#define _istspace_l _isspace_l
1135#define _istupper isupper1146#define _istupper isupper
1136#define _istupper_l _isupper_l1147#define _istupper_l _isupper_l
1148#define _istblank isblank
1149#if __MSVCRT_VERSION__ >= 0xC00
1150#define _istblank_l _isblank_l
1151#endif /* msvcr120 */
11371152
1138#define _totupper toupper1153#define _totupper toupper
1139#define _totupper_l _toupper_l1154#define _totupper_l _toupper_l
...@@ -1168,9 +1183,9 @@ extern "C" {...@@ -1168,9 +1183,9 @@ extern "C" {
1168#define _strnset_l(_Destination,_Value,_Count,_Locale) (_strnset(_Destination,_Value,_Count))1183#define _strnset_l(_Destination,_Value,_Count,_Locale) (_strnset(_Destination,_Value,_Count))
1169#define _strset_l(_Destination,_Value,_Locale) (_strset(_Destination,_Value))1184#define _strset_l(_Destination,_Value,_Locale) (_strset(_Destination,_Value))
1170#endif1185#endif
1171#endif1186#endif /* _MBCS */
11721187
1173#endif /* __CYGWIN__ */1188#endif /* _UNICODE */
11741189
1175#define _T(x) __T(x)1190#define _T(x) __T(x)
1176#define _TEXT(x) __T(x)1191#define _TEXT(x) __T(x)
lib/libc/include/any-windows-any/textstor.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/textstor.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/textstor.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/thumbcache.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/thumbcache.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/thumbcache.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/tlbref.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/tlbref.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/tlbref.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/tlogstg.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/tlogstg.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/tlogstg.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/tpcshrd.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/tpcshrd.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/tpcshrd.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/tsvirtualchannels.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/tsvirtualchannels.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/tsvirtualchannels.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/tuner.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/tuner.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/tuner.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/uianimation.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/uianimation.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/uianimation.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/uiautomationclient.h+91-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/uiautomationclient.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/uiautomationclient.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
...@@ -1344,6 +1344,96 @@ DEFINE_GUID(LIBID_UIAutomationClient, 0x944de083, 0x8fb8, 0x45cf, 0xbc,0xb7, 0xc...@@ -1344,6 +1344,96 @@ DEFINE_GUID(LIBID_UIAutomationClient, 0x944de083, 0x8fb8, 0x45cf, 0xbc,0xb7, 0xc
1344#define UIA_AppBarControlTypeId (50040)1344#define UIA_AppBarControlTypeId (50040)
13451345
1346#endif /* __UIA_ControlTypeIds_MODULE_DEFINED__ */1346#endif /* __UIA_ControlTypeIds_MODULE_DEFINED__ */
1347#ifndef __UIA_AnnotationTypes_MODULE_DEFINED__
1348#define __UIA_AnnotationTypes_MODULE_DEFINED__
1349#define AnnotationType_Unknown (60000)
1350
1351#define AnnotationType_SpellingError (60001)
1352
1353#define AnnotationType_GrammarError (60002)
1354
1355#define AnnotationType_Comment (60003)
1356
1357#define AnnotationType_FormulaError (60004)
1358
1359#define AnnotationType_TrackChanges (60005)
1360
1361#define AnnotationType_Header (60006)
1362
1363#define AnnotationType_Footer (60007)
1364
1365#define AnnotationType_Highlighted (60008)
1366
1367#define AnnotationType_Endnote (60009)
1368
1369#define AnnotationType_Footnote (60010)
1370
1371#define AnnotationType_InsertionChange (60011)
1372
1373#define AnnotationType_DeletionChange (60012)
1374
1375#define AnnotationType_MoveChange (60013)
1376
1377#define AnnotationType_FormatChange (60014)
1378
1379#define AnnotationType_UnsyncedChange (60015)
1380
1381#define AnnotationType_EditingLockedChange (60016)
1382
1383#define AnnotationType_ExternalChange (60017)
1384
1385#define AnnotationType_ConflictingChange (60018)
1386
1387#define AnnotationType_Author (60019)
1388
1389#define AnnotationType_AdvancedProofingIssue (60020)
1390
1391#define AnnotationType_DataValidationError (60021)
1392
1393#define AnnotationType_CircularReferenceError (60022)
1394
1395#define AnnotationType_Mathematics (60023)
1396
1397#define AnnotationType_Sensitive (60024)
1398
1399#endif /* __UIA_AnnotationTypes_MODULE_DEFINED__ */
1400#ifndef __UIA_StyleIds_MODULE_DEFINED__
1401#define __UIA_StyleIds_MODULE_DEFINED__
1402#define StyleId_Custom (70000)
1403
1404#define StyleId_Heading1 (70001)
1405
1406#define StyleId_Heading2 (70002)
1407
1408#define StyleId_Heading3 (70003)
1409
1410#define StyleId_Heading4 (70004)
1411
1412#define StyleId_Heading5 (70005)
1413
1414#define StyleId_Heading6 (70006)
1415
1416#define StyleId_Heading7 (70007)
1417
1418#define StyleId_Heading8 (70008)
1419
1420#define StyleId_Heading9 (70009)
1421
1422#define StyleId_Title (70010)
1423
1424#define StyleId_Subtitle (70011)
1425
1426#define StyleId_Normal (70012)
1427
1428#define StyleId_Emphasis (70013)
1429
1430#define StyleId_Quote (70014)
1431
1432#define StyleId_BulletedList (70015)
1433
1434#define StyleId_NumberedList (70016)
1435
1436#endif /* __UIA_StyleIds_MODULE_DEFINED__ */
1347#ifndef __UIA_LandmarkTypeIds_MODULE_DEFINED__1437#ifndef __UIA_LandmarkTypeIds_MODULE_DEFINED__
1348#define __UIA_LandmarkTypeIds_MODULE_DEFINED__1438#define __UIA_LandmarkTypeIds_MODULE_DEFINED__
1349#define UIA_CustomLandmarkTypeId (80000)1439#define UIA_CustomLandmarkTypeId (80000)
lib/libc/include/any-windows-any/uiautomationcore.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/uiautomationcore.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/uiautomationcore.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/uiviewsettingsinterop.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/uiviewsettingsinterop.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/uiviewsettingsinterop.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/unknwn.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/unknwn.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/unknwn.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/unknwnbase.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/unknwnbase.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/unknwnbase.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/urlhist.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/urlhist.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/urlhist.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/urlmon.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/urlmon.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/urlmon.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vdslun.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/vdslun.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/vdslun.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vidcap.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/vidcap.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/vidcap.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vmr9.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/vmr9.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/vmr9.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vsadmin.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/vsadmin.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/vsadmin.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vsbackup.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/vsbackup.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/vsbackup.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vsmgmt.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/vsmgmt.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/vsmgmt.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vsprov.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/vsprov.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/vsprov.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vss.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/vss.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/vss.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vswriter.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/vswriter.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/vswriter.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wbemads.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wbemads.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wbemads.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wbemcli.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wbemcli.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wbemcli.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wbemdisp.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wbemdisp.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wbemdisp.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wbemprov.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wbemprov.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wbemprov.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wbemtran.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wbemtran.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wbemtran.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wchar.h+112-30
...@@ -213,8 +213,9 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);...@@ -213,8 +213,9 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);
213 wint_t __cdecl towupper(wint_t _C);213 wint_t __cdecl towupper(wint_t _C);
214 wint_t __cdecl towlower(wint_t _C);214 wint_t __cdecl towlower(wint_t _C);
215 int __cdecl iswctype(wint_t _C,wctype_t _Type);215 int __cdecl iswctype(wint_t _C,wctype_t _Type);
216#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x700 && _WIN32_WINNT >= 0x0600)216#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x600 && _WIN32_WINNT >= 0x0600)
217 /* These are available since msvcr80.dll, and in msvcrt.dll since Vista. */217 /* These are available since msvcr80.dll (__MSVCRT_VERSION__ >= 0x800), and in
218 * msvcrt.dll (__MSVCRT_VERSION__ == 0x600) since Vista (_WIN32_WINNT >= 0x0600). */
218 _CRTIMP int __cdecl _iswalpha_l(wint_t _C,_locale_t _Locale);219 _CRTIMP int __cdecl _iswalpha_l(wint_t _C,_locale_t _Locale);
219 _CRTIMP int __cdecl _iswupper_l(wint_t _C,_locale_t _Locale);220 _CRTIMP int __cdecl _iswupper_l(wint_t _C,_locale_t _Locale);
220 _CRTIMP int __cdecl _iswlower_l(wint_t _C,_locale_t _Locale);221 _CRTIMP int __cdecl _iswlower_l(wint_t _C,_locale_t _Locale);
...@@ -253,10 +254,23 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);...@@ -253,10 +254,23 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);
253#ifndef _WDIRECT_DEFINED254#ifndef _WDIRECT_DEFINED
254#define _WDIRECT_DEFINED255#define _WDIRECT_DEFINED
255256
257#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
258#pragma push_macro("_wgetcwd")
259#undef _wgetcwd
260#pragma push_macro("_wgetdcwd")
261#undef _wgetdcwd
262#pragma push_macro("_wgetdcwd_nolock")
263#undef _wgetdcwd_nolock
264#endif
256 _CRTIMP wchar_t *__cdecl _wgetcwd(wchar_t *_DstBuf,int _SizeInWords);265 _CRTIMP wchar_t *__cdecl _wgetcwd(wchar_t *_DstBuf,int _SizeInWords);
257 _CRTIMP wchar_t *__cdecl _wgetdcwd(int _Drive,wchar_t *_DstBuf,int _SizeInWords);266 _CRTIMP wchar_t *__cdecl _wgetdcwd(int _Drive,wchar_t *_DstBuf,int _SizeInWords);
258#if __MSVCRT_VERSION__ >= 0x800267#if __MSVCRT_VERSION__ >= 0x800
259 wchar_t *__cdecl _wgetdcwd_nolock(int _Drive,wchar_t *_DstBuf,int _SizeInWords);268 wchar_t *__cdecl _wgetdcwd_nolock(int _Drive,wchar_t *_DstBuf,int _SizeInWords);
269#endif
270#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
271#pragma pop_macro("_wgetcwd")
272#pragma pop_macro("_wgetdcwd")
273#pragma pop_macro("_wgetdcwd_nolock")
260#endif274#endif
261 _CRTIMP int __cdecl _wchdir(const wchar_t *_Path);275 _CRTIMP int __cdecl _wchdir(const wchar_t *_Path);
262 _CRTIMP int __cdecl _wmkdir(const wchar_t *_Path);276 _CRTIMP int __cdecl _wmkdir(const wchar_t *_Path);
...@@ -336,7 +350,7 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);...@@ -336,7 +350,7 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);
336#define iswgraph(_c) (iswctype(_c,_PUNCT|_ALPHA|_DIGIT))350#define iswgraph(_c) (iswctype(_c,_PUNCT|_ALPHA|_DIGIT))
337#define iswcntrl(_c) (iswctype(_c,_CONTROL))351#define iswcntrl(_c) (iswctype(_c,_CONTROL))
338#define iswascii(_c) ((unsigned)(_c) < 0x80)352#define iswascii(_c) ((unsigned)(_c) < 0x80)
339#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x700 && _WIN32_WINNT >= 0x0600)353#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x600 && _WIN32_WINNT >= 0x0600)
340# define _iswalpha_l(_c,_p) (_iswctype_l(_c,_ALPHA,_p))354# define _iswalpha_l(_c,_p) (_iswctype_l(_c,_ALPHA,_p))
341# define _iswupper_l(_c,_p) (_iswctype_l(_c,_UPPER,_p))355# define _iswupper_l(_c,_p) (_iswctype_l(_c,_UPPER,_p))
342# define _iswlower_l(_c,_p) (_iswctype_l(_c,_LOWER,_p))356# define _iswlower_l(_c,_p) (_iswctype_l(_c,_LOWER,_p))
...@@ -452,10 +466,10 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);...@@ -452,10 +466,10 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);
452 int __cdecl __mingw_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);466 int __cdecl __mingw_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);
453/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)467/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
454 int __cdecl __mingw_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);468 int __cdecl __mingw_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);
455/* __attribute__((__format__ (gnu_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)469/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
456 int __cdecl __mingw_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);470 int __cdecl __mingw_swprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , ...);
457/* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)471/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
458 int __cdecl __mingw_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list);472 int __cdecl __mingw_vswprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ ,va_list);
459473
460/* __attribute__((__format__ (ms_wscanf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)474/* __attribute__((__format__ (ms_wscanf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
461 int __cdecl __ms_swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...);475 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);...@@ -472,10 +486,10 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);
472 int __cdecl __ms_vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);486 int __cdecl __ms_vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);
473/*__attribute__((__format__ (ms_wprintf, 1, 0))) */ __MINGW_ATTRIB_NONNULL(1)487/*__attribute__((__format__ (ms_wprintf, 1, 0))) */ __MINGW_ATTRIB_NONNULL(1)
474 int __cdecl __ms_vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);488 int __cdecl __ms_vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
475/* __attribute__((__format__ (ms_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)489/* __attribute__((__format__ (ms_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
476 int __cdecl __ms_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);490 int __cdecl __ms_swprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , ...);
477/* __attribute__((__format__ (ms_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)491/* __attribute__((__format__ (ms_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
478 int __cdecl __ms_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list);492 int __cdecl __ms_vswprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ ,va_list);
479493
480#ifdef _UCRT494#ifdef _UCRT
481 int __cdecl __stdio_common_vswprintf(unsigned __int64 options, wchar_t *str, size_t len, const wchar_t *format, _locale_t locale, va_list valist);495 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);...@@ -533,7 +547,16 @@ __MINGW_ASM_CALL(__mingw_vfwprintf);
533int vwprintf (const wchar_t *__format, __builtin_va_list __local_argv)547int vwprintf (const wchar_t *__format, __builtin_va_list __local_argv)
534__MINGW_ASM_CALL(__mingw_vwprintf);548__MINGW_ASM_CALL(__mingw_vwprintf);
535549
536/*#ifndef __NO_ISOCEXT */ /* externs in libmingwex.a */550/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
551int swprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, ...)
552__MINGW_ASM_CALL(__mingw_swprintf);
553
554/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
555int vswprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builtin_va_list __local_argv)
556__MINGW_ASM_CALL(__mingw_vswprintf);
557
558#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
559
537/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)560/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
538int snwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, ...)561int snwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, ...)
539__MINGW_ASM_CALL(__mingw_snwprintf);562__MINGW_ASM_CALL(__mingw_snwprintf);
...@@ -541,7 +564,9 @@ __MINGW_ASM_CALL(__mingw_snwprintf);...@@ -541,7 +564,9 @@ __MINGW_ASM_CALL(__mingw_snwprintf);
541/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)564/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
542int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builtin_va_list __local_argv)565int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builtin_va_list __local_argv)
543__MINGW_ASM_CALL(__mingw_vsnwprintf);566__MINGW_ASM_CALL(__mingw_vsnwprintf);
544/* #endif */ /* __NO_ISOCEXT */567
568#endif /* __NO_ISOCEXT */
569
545#else /* !__USE_MINGW_ANSI_STDIO */570#else /* !__USE_MINGW_ANSI_STDIO */
546571
547#ifdef _UCRT572#ifdef _UCRT
...@@ -616,6 +641,44 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);...@@ -616,6 +641,44 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
616 {641 {
617 return __stdio_common_vfwprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, stdout, _Format, NULL, _ArgList);642 return __stdio_common_vfwprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, stdout, _Format, NULL, _ArgList);
618 }643 }
644
645 __mingw_ovr
646 int __cdecl swprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...)
647 {
648 __builtin_va_list __ap;
649 int __ret;
650 /*
651 * __stdio_common_vswprintf() for case _Dest == NULL and _Count == 0 and
652 * without _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR option, is
653 * executed in "standard snprintf behavior" and returns number of (wide)
654 * chars required to allocate. For all other cases it is executed in a way
655 * that returns negative value on error. But C95+ compliant swprintf() for
656 * case _Count == 0 returns negative value, so handle this case specially.
657 */
658 if (_Dest == NULL && _Count == 0)
659 return -1;
660 __builtin_va_start(__ap, _Format);
661 __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Dest, _Count, _Format, NULL, __ap);
662 __builtin_va_end(__ap);
663 return __ret < 0 ? -1 : __ret;
664 }
665 __mingw_ovr
666 int __cdecl vswprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,va_list _Args)
667 {
668 int __ret;
669 /*
670 * __stdio_common_vswprintf() for case _Dest == NULL and _Count == 0 and
671 * without _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR option, is
672 * executed in "standard snprintf behavior" and returns number of (wide)
673 * chars required to allocate. For all other cases it is executed in a way
674 * that returns negative value on error. But C95+ compliant vswprintf() for
675 * case _Count == 0 returns negative value, so handle this case specially.
676 */
677 if (_Dest == NULL && _Count == 0)
678 return -1;
679 __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Dest, _Count, _Format, NULL, _Args);
680 return __ret < 0 ? -1 : __ret;
681 }
619#else682#else
620683
621 int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;684 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);...@@ -652,6 +715,9 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
652 int __cdecl wprintf(const wchar_t * __restrict__ _Format,...);715 int __cdecl wprintf(const wchar_t * __restrict__ _Format,...);
653 int __cdecl vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);716 int __cdecl vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);
654 int __cdecl vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);717 int __cdecl vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
718
719 int __cdecl swprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...);
720 int __cdecl vswprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,va_list _Args);
655#endif /* _UCRT */721#endif /* _UCRT */
656#endif /* __USE_MINGW_ANSI_STDIO */722#endif /* __USE_MINGW_ANSI_STDIO */
657723
...@@ -707,12 +773,12 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);...@@ -707,12 +773,12 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
707 __builtin_va_start(__ap, format);773 __builtin_va_start(__ap, format);
708 __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, s, n, format, NULL, __ap);774 __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, s, n, format, NULL, __ap);
709 __builtin_va_end(__ap);775 __builtin_va_end(__ap);
710 return __ret;776 return __ret < 0 ? -1 : __ret;
711 }777 }
712 __mingw_ovr778 __mingw_ovr
713 int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg)779 int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg)
714 {780 {
715 int __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, s, n, format, NULL, arg);781 int __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, s, n, format, NULL, arg);
716 return __ret < 0 ? -1 : __ret;782 return __ret < 0 ? -1 : __ret;
717 }783 }
718#endif784#endif
...@@ -734,21 +800,8 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);...@@ -734,21 +800,8 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
734# undef vsnwprintf800# undef vsnwprintf
735 int __cdecl __ms_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);801 int __cdecl __ms_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);
736 int __cdecl __ms_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);802 int __cdecl __ms_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);
737 __mingw_ovr803 int __cdecl snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...) __MINGW_ASM_CALL(__ms_snwprintf);
738 int snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...)804 int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg) __MINGW_ASM_CALL(__ms_vsnwprintf);
739 {
740 int r;
741 va_list argp;
742 __builtin_va_start (argp, format);
743 r = _vsnwprintf (s, n, format, argp);
744 __builtin_va_end (argp);
745 return r;
746 }
747 __mingw_ovr
748 int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg)
749 {
750 return _vsnwprintf(s,n,format,arg);
751 }
752#pragma pop_macro ("vsnwprintf")805#pragma pop_macro ("vsnwprintf")
753#pragma pop_macro ("snwprintf")806#pragma pop_macro ("snwprintf")
754#endif807#endif
...@@ -1078,7 +1131,15 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);...@@ -1078,7 +1131,15 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
1078#endif1131#endif
1079#endif1132#endif
10801133
1134#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
1135#pragma push_macro("_wtempnam")
1136#undef _wtempnam
1137#endif
1081 _CRTIMP wchar_t *__cdecl _wtempnam(const wchar_t *_Directory,const wchar_t *_FilePrefix);1138 _CRTIMP wchar_t *__cdecl _wtempnam(const wchar_t *_Directory,const wchar_t *_FilePrefix);
1139#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
1140#pragma pop_macro("_wtempnam")
1141#endif
1142
1082#ifndef _UCRT1143#ifndef _UCRT
1083 _CRTIMP int __cdecl _vscwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);1144 _CRTIMP int __cdecl _vscwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
1084 _CRTIMP int __cdecl _vscwprintf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);1145 _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);...@@ -1184,7 +1245,14 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
1184#ifndef _POSIX_1245#ifndef _POSIX_
1185#ifndef _WSTDLIBP_DEFINED1246#ifndef _WSTDLIBP_DEFINED
1186#define _WSTDLIBP_DEFINED1247#define _WSTDLIBP_DEFINED
1248#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
1249#pragma push_macro("_wfullpath")
1250#undef _wfullpath
1251#endif
1187 _CRTIMP wchar_t *__cdecl _wfullpath(wchar_t *_FullPath,const wchar_t *_Path,size_t _SizeInWords);1252 _CRTIMP wchar_t *__cdecl _wfullpath(wchar_t *_FullPath,const wchar_t *_Path,size_t _SizeInWords);
1253#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
1254#pragma pop_macro("_wfullpath")
1255#endif
1188 _CRTIMP void __cdecl _wmakepath(wchar_t *_ResultPath,const wchar_t *_Drive,const wchar_t *_Dir,const wchar_t *_Filename,const wchar_t *_Ext);1256 _CRTIMP void __cdecl _wmakepath(wchar_t *_ResultPath,const wchar_t *_Drive,const wchar_t *_Dir,const wchar_t *_Filename,const wchar_t *_Ext);
1189#ifndef _CRT_WPERROR_DEFINED1257#ifndef _CRT_WPERROR_DEFINED
1190#define _CRT_WPERROR_DEFINED1258#define _CRT_WPERROR_DEFINED
...@@ -1198,7 +1266,14 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);...@@ -1198,7 +1266,14 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
11981266
1199#ifndef _WSTRING_DEFINED1267#ifndef _WSTRING_DEFINED
1200#define _WSTRING_DEFINED1268#define _WSTRING_DEFINED
1269#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
1270#pragma push_macro("_wcsdup")
1271#undef _wcsdup
1272#endif
1201 _CRTIMP wchar_t *__cdecl _wcsdup(const wchar_t *_Str);1273 _CRTIMP wchar_t *__cdecl _wcsdup(const wchar_t *_Str);
1274#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
1275#pragma pop_macro("_wcsdup")
1276#endif
1202 wchar_t *__cdecl wcscat(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Source) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;1277 wchar_t *__cdecl wcscat(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Source) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1203 _CONST_RETURN wchar_t *__cdecl wcschr(const wchar_t *_Str,wchar_t _Ch);1278 _CONST_RETURN wchar_t *__cdecl wcschr(const wchar_t *_Str,wchar_t _Ch);
1204 int __cdecl wcscmp(const wchar_t *_Str1,const wchar_t *_Str2);1279 int __cdecl wcscmp(const wchar_t *_Str1,const wchar_t *_Str2);
...@@ -1247,7 +1322,14 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);...@@ -1247,7 +1322,14 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
1247 _CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);1322 _CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
12481323
1249#ifndef NO_OLDNAMES1324#ifndef NO_OLDNAMES
1325#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
1326#pragma push_macro("wcsdup")
1327#undef wcsdup
1328#endif
1250 wchar_t *__cdecl wcsdup(const wchar_t *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;1329 wchar_t *__cdecl wcsdup(const wchar_t *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
1330#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
1331#pragma pop_macro("wcsdup")
1332#endif
1251#define wcswcs wcsstr1333#define wcswcs wcsstr
1252 int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005;1334 int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
1253 int __cdecl wcsnicmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount) __MINGW_ATTRIB_DEPRECATED_MSVC2005;1335 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-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wdstptmgmt.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wdstptmgmt.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/weakreference.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/weakreference.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/weakreference.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wia.h+22-1029
...@@ -1,1035 +1,28 @@...@@ -1,1035 +1,28 @@
1/**1/*
2 * This file has no copyright assigned and is placed in the Public Domain.2 * Copyright (C) 2009 Damjan Jovanovic
3 * This file is part of the mingw-w64 runtime package.3 *
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
5 */17 */
6#ifndef __REQUIRED_RPCNDR_H_VERSION__
7#define __REQUIRED_RPCNDR_H_VERSION__ 475
8#endif
9
10#include "rpc.h"
11#include "rpcndr.h"
12
13#ifndef __RPCNDR_H_VERSION__
14#error This stub requires an updated version of <rpcndr.h>
15#endif
16
17#ifndef COM_NO_WINDOWS_H
18#include "windows.h"
19#include "ole2.h"
20#endif
21
22#ifndef __wia_h__
23#define __wia_h__
24
25#ifndef __IWiaDevMgr_FWD_DEFINED__
26#define __IWiaDevMgr_FWD_DEFINED__
27typedef struct IWiaDevMgr IWiaDevMgr;
28#endif
29
30#ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__
31#define __IEnumWIA_DEV_INFO_FWD_DEFINED__
32typedef struct IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
33#endif
34
35#ifndef __IWiaEventCallback_FWD_DEFINED__
36#define __IWiaEventCallback_FWD_DEFINED__
37typedef struct IWiaEventCallback IWiaEventCallback;
38#endif
39
40#ifndef __IWiaDataCallback_FWD_DEFINED__
41#define __IWiaDataCallback_FWD_DEFINED__
42typedef struct IWiaDataCallback IWiaDataCallback;
43#endif
44
45#ifndef __IWiaDataTransfer_FWD_DEFINED__
46#define __IWiaDataTransfer_FWD_DEFINED__
47typedef struct IWiaDataTransfer IWiaDataTransfer;
48#endif
49
50#ifndef __IWiaItem_FWD_DEFINED__
51#define __IWiaItem_FWD_DEFINED__
52typedef struct IWiaItem IWiaItem;
53#endif
54
55#ifndef __IWiaPropertyStorage_FWD_DEFINED__
56#define __IWiaPropertyStorage_FWD_DEFINED__
57typedef struct IWiaPropertyStorage IWiaPropertyStorage;
58#endif
59
60#ifndef __IEnumWiaItem_FWD_DEFINED__
61#define __IEnumWiaItem_FWD_DEFINED__
62typedef struct IEnumWiaItem IEnumWiaItem;
63#endif
64
65#ifndef __IEnumWIA_DEV_CAPS_FWD_DEFINED__
66#define __IEnumWIA_DEV_CAPS_FWD_DEFINED__
67typedef struct IEnumWIA_DEV_CAPS IEnumWIA_DEV_CAPS;
68#endif
69
70#ifndef __IEnumWIA_FORMAT_INFO_FWD_DEFINED__
71#define __IEnumWIA_FORMAT_INFO_FWD_DEFINED__
72typedef struct IEnumWIA_FORMAT_INFO IEnumWIA_FORMAT_INFO;
73#endif
74
75#ifndef __IWiaLog_FWD_DEFINED__
76#define __IWiaLog_FWD_DEFINED__
77typedef struct IWiaLog IWiaLog;
78#endif
79
80#ifndef __IWiaLogEx_FWD_DEFINED__
81#define __IWiaLogEx_FWD_DEFINED__
82typedef struct IWiaLogEx IWiaLogEx;
83#endif
8418
85#ifndef __IWiaNotifyDevMgr_FWD_DEFINED__
86#define __IWiaNotifyDevMgr_FWD_DEFINED__
87typedef struct IWiaNotifyDevMgr IWiaNotifyDevMgr;
88#endif
89
90#ifndef __IWiaItemExtras_FWD_DEFINED__
91#define __IWiaItemExtras_FWD_DEFINED__
92typedef struct IWiaItemExtras IWiaItemExtras;
93#endif
94
95#ifndef __WiaDevMgr_FWD_DEFINED__
96#define __WiaDevMgr_FWD_DEFINED__
97
98#ifdef __cplusplus
99typedef class WiaDevMgr WiaDevMgr;
100#else
101typedef struct WiaDevMgr WiaDevMgr;
102#endif
103#endif
104
105#ifndef __WiaLog_FWD_DEFINED__
106#define __WiaLog_FWD_DEFINED__
10719
108#ifdef __cplusplus20#ifdef __WINESRC__
109typedef class WiaLog WiaLog;21#error Specify wia_lh.h or wia_xp.h explicitly in Wine
110#else
111typedef struct WiaLog WiaLog;
112#endif22#endif
113#endif
114
115#include "unknwn.h"
116#include "oaidl.h"
117#include "propidl.h"
118
119#ifdef __cplusplus
120extern "C" {
121#endif
122
123#ifndef __MIDL_user_allocate_free_DEFINED__
124#define __MIDL_user_allocate_free_DEFINED__
125 void *__RPC_API MIDL_user_allocate(size_t);
126 void __RPC_API MIDL_user_free(void *);
127#endif
128
129 typedef struct _WIA_DITHER_PATTERN_DATA {
130 LONG lSize;
131 BSTR bstrPatternName;
132 LONG lPatternWidth;
133 LONG lPatternLength;
134 LONG cbPattern;
135 BYTE *pbPattern;
136 } WIA_DITHER_PATTERN_DATA;
137
138 typedef struct _WIA_DITHER_PATTERN_DATA *PWIA_DITHER_PATTERN_DATA;
13923
140 typedef struct _WIA_PROPID_TO_NAME {24#if (_WIN32_WINNT >= 0x0600)
141 PROPID propid;25#include <wia_lh.h>
142 LPOLESTR pszName;26#elif (_WIN32_WINNT >= 0x0501)
143 } WIA_PROPID_TO_NAME;27#include <wia_xp.h>
144
145 typedef struct _WIA_PROPID_TO_NAME *PWIA_PROPID_TO_NAME;
146
147 typedef struct _WIA_FORMAT_INFO {
148 GUID guidFormatID;
149 LONG lTymed;
150 } WIA_FORMAT_INFO;
151
152 typedef struct _WIA_FORMAT_INFO *PWIA_FORMAT_INFO;
153
154#include "wiadef.h"
155
156 extern RPC_IF_HANDLE __MIDL_itf_wia_0000_v0_0_c_ifspec;
157 extern RPC_IF_HANDLE __MIDL_itf_wia_0000_v0_0_s_ifspec;
158#ifndef __IWiaDevMgr_INTERFACE_DEFINED__
159#define __IWiaDevMgr_INTERFACE_DEFINED__
160 EXTERN_C const IID IID_IWiaDevMgr;
161#if defined(__cplusplus) && !defined(CINTERFACE)
162 struct IWiaDevMgr : public IUnknown {
163 public:
164 virtual HRESULT WINAPI EnumDeviceInfo(LONG lFlag,IEnumWIA_DEV_INFO **ppIEnum) = 0;
165 virtual HRESULT WINAPI CreateDevice(BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot) = 0;
166 virtual HRESULT WINAPI SelectDeviceDlg(HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot) = 0;
167 virtual HRESULT WINAPI SelectDeviceDlgID(HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID) = 0;
168 virtual HRESULT WINAPI GetImageDlg(HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat) = 0;
169 virtual HRESULT WINAPI RegisterEventCallbackProgram(LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) = 0;
170 virtual HRESULT WINAPI RegisterEventCallbackInterface(LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject) = 0;
171 virtual HRESULT WINAPI RegisterEventCallbackCLSID(LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) = 0;
172 virtual HRESULT WINAPI AddDeviceDlg(HWND hwndParent,LONG lFlags) = 0;
173 };
174#else
175 typedef struct IWiaDevMgrVtbl {
176 BEGIN_INTERFACE
177 HRESULT (WINAPI *QueryInterface)(IWiaDevMgr *This,REFIID riid,void **ppvObject);
178 ULONG (WINAPI *AddRef)(IWiaDevMgr *This);
179 ULONG (WINAPI *Release)(IWiaDevMgr *This);
180 HRESULT (WINAPI *EnumDeviceInfo)(IWiaDevMgr *This,LONG lFlag,IEnumWIA_DEV_INFO **ppIEnum);
181 HRESULT (WINAPI *CreateDevice)(IWiaDevMgr *This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot);
182 HRESULT (WINAPI *SelectDeviceDlg)(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot);
183 HRESULT (WINAPI *SelectDeviceDlgID)(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID);
184 HRESULT (WINAPI *GetImageDlg)(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat);
185 HRESULT (WINAPI *RegisterEventCallbackProgram)(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
186 HRESULT (WINAPI *RegisterEventCallbackInterface)(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject);
187 HRESULT (WINAPI *RegisterEventCallbackCLSID)(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
188 HRESULT (WINAPI *AddDeviceDlg)(IWiaDevMgr *This,HWND hwndParent,LONG lFlags);
189 END_INTERFACE
190 } IWiaDevMgrVtbl;
191 struct IWiaDevMgr {
192 CONST_VTBL struct IWiaDevMgrVtbl *lpVtbl;
193 };
194#ifdef COBJMACROS
195#define IWiaDevMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
196#define IWiaDevMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
197#define IWiaDevMgr_Release(This) (This)->lpVtbl->Release(This)
198#define IWiaDevMgr_EnumDeviceInfo(This,lFlag,ppIEnum) (This)->lpVtbl->EnumDeviceInfo(This,lFlag,ppIEnum)
199#define IWiaDevMgr_CreateDevice(This,bstrDeviceID,ppWiaItemRoot) (This)->lpVtbl->CreateDevice(This,bstrDeviceID,ppWiaItemRoot)
200#define IWiaDevMgr_SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot) (This)->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot)
201#define IWiaDevMgr_SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID) (This)->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID)
202#define IWiaDevMgr_GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat) (This)->lpVtbl->GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat)
203#define IWiaDevMgr_RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon)
204#define IWiaDevMgr_RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject) (This)->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject)
205#define IWiaDevMgr_RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon)
206#define IWiaDevMgr_AddDeviceDlg(This,hwndParent,lFlags) (This)->lpVtbl->AddDeviceDlg(This,hwndParent,lFlags)
207#endif
208#endif
209 HRESULT WINAPI IWiaDevMgr_EnumDeviceInfo_Proxy(IWiaDevMgr *This,LONG lFlag,IEnumWIA_DEV_INFO **ppIEnum);
210 void __RPC_STUB IWiaDevMgr_EnumDeviceInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
211 HRESULT WINAPI IWiaDevMgr_LocalCreateDevice_Proxy(IWiaDevMgr *This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot);
212 void __RPC_STUB IWiaDevMgr_LocalCreateDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
213 HRESULT WINAPI IWiaDevMgr_LocalSelectDeviceDlg_Proxy(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot);
214 void __RPC_STUB IWiaDevMgr_LocalSelectDeviceDlg_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
215 HRESULT WINAPI IWiaDevMgr_LocalSelectDeviceDlgID_Proxy(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID);
216 void __RPC_STUB IWiaDevMgr_LocalSelectDeviceDlgID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
217 HRESULT WINAPI IWiaDevMgr_LocalGetImageDlg_Proxy(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat);
218 void __RPC_STUB IWiaDevMgr_LocalGetImageDlg_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
219 HRESULT WINAPI IWiaDevMgr_LocalRegisterEventCallbackProgram_Proxy(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
220 void __RPC_STUB IWiaDevMgr_LocalRegisterEventCallbackProgram_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
221 HRESULT WINAPI IWiaDevMgr_LocalRegisterEventCallbackInterface_Proxy(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject);
222 void __RPC_STUB IWiaDevMgr_LocalRegisterEventCallbackInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
223 HRESULT WINAPI IWiaDevMgr_LocalRegisterEventCallbackCLSID_Proxy(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
224 void __RPC_STUB IWiaDevMgr_LocalRegisterEventCallbackCLSID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
225 HRESULT WINAPI IWiaDevMgr_AddDeviceDlg_Proxy(IWiaDevMgr *This,HWND hwndParent,LONG lFlags);
226 void __RPC_STUB IWiaDevMgr_AddDeviceDlg_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
227#endif
228
229#ifndef __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
230#define __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
231 EXTERN_C const IID IID_IEnumWIA_DEV_INFO;
232#if defined(__cplusplus) && !defined(CINTERFACE)
233 struct IEnumWIA_DEV_INFO : public IUnknown {
234 public:
235 virtual HRESULT WINAPI Next(ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched) = 0;
236 virtual HRESULT WINAPI Skip(ULONG celt) = 0;
237 virtual HRESULT WINAPI Reset(void) = 0;
238 virtual HRESULT WINAPI Clone(IEnumWIA_DEV_INFO **ppIEnum) = 0;
239 virtual HRESULT WINAPI GetCount(ULONG *celt) = 0;
240 };
241#else
242 typedef struct IEnumWIA_DEV_INFOVtbl {
243 BEGIN_INTERFACE
244 HRESULT (WINAPI *QueryInterface)(IEnumWIA_DEV_INFO *This,REFIID riid,void **ppvObject);
245 ULONG (WINAPI *AddRef)(IEnumWIA_DEV_INFO *This);
246 ULONG (WINAPI *Release)(IEnumWIA_DEV_INFO *This);
247 HRESULT (WINAPI *Next)(IEnumWIA_DEV_INFO *This,ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched);
248 HRESULT (WINAPI *Skip)(IEnumWIA_DEV_INFO *This,ULONG celt);
249 HRESULT (WINAPI *Reset)(IEnumWIA_DEV_INFO *This);
250 HRESULT (WINAPI *Clone)(IEnumWIA_DEV_INFO *This,IEnumWIA_DEV_INFO **ppIEnum);
251 HRESULT (WINAPI *GetCount)(IEnumWIA_DEV_INFO *This,ULONG *celt);
252 END_INTERFACE
253 } IEnumWIA_DEV_INFOVtbl;
254 struct IEnumWIA_DEV_INFO {
255 CONST_VTBL struct IEnumWIA_DEV_INFOVtbl *lpVtbl;
256 };
257#ifdef COBJMACROS
258#define IEnumWIA_DEV_INFO_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
259#define IEnumWIA_DEV_INFO_AddRef(This) (This)->lpVtbl->AddRef(This)
260#define IEnumWIA_DEV_INFO_Release(This) (This)->lpVtbl->Release(This)
261#define IEnumWIA_DEV_INFO_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
262#define IEnumWIA_DEV_INFO_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
263#define IEnumWIA_DEV_INFO_Reset(This) (This)->lpVtbl->Reset(This)
264#define IEnumWIA_DEV_INFO_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
265#define IEnumWIA_DEV_INFO_GetCount(This,celt) (This)->lpVtbl->GetCount(This,celt)
266#endif
267#endif
268 HRESULT WINAPI IEnumWIA_DEV_INFO_RemoteNext_Proxy(IEnumWIA_DEV_INFO *This,ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched);
269 void __RPC_STUB IEnumWIA_DEV_INFO_RemoteNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
270 HRESULT WINAPI IEnumWIA_DEV_INFO_Skip_Proxy(IEnumWIA_DEV_INFO *This,ULONG celt);
271 void __RPC_STUB IEnumWIA_DEV_INFO_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
272 HRESULT WINAPI IEnumWIA_DEV_INFO_Reset_Proxy(IEnumWIA_DEV_INFO *This);
273 void __RPC_STUB IEnumWIA_DEV_INFO_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
274 HRESULT WINAPI IEnumWIA_DEV_INFO_Clone_Proxy(IEnumWIA_DEV_INFO *This,IEnumWIA_DEV_INFO **ppIEnum);
275 void __RPC_STUB IEnumWIA_DEV_INFO_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
276 HRESULT WINAPI IEnumWIA_DEV_INFO_GetCount_Proxy(IEnumWIA_DEV_INFO *This,ULONG *celt);
277 void __RPC_STUB IEnumWIA_DEV_INFO_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
278#endif
279
280#ifndef __IWiaEventCallback_INTERFACE_DEFINED__
281#define __IWiaEventCallback_INTERFACE_DEFINED__
282 EXTERN_C const IID IID_IWiaEventCallback;
283#if defined(__cplusplus) && !defined(CINTERFACE)
284 struct IWiaEventCallback : public IUnknown {
285 public:
286 virtual HRESULT WINAPI ImageEventCallback(const GUID *pEventGUID,BSTR bstrEventDescription,BSTR bstrDeviceID,BSTR bstrDeviceDescription,DWORD dwDeviceType,BSTR bstrFullItemName,ULONG *pulEventType,ULONG ulReserved) = 0;
287 };
288#else
289 typedef struct IWiaEventCallbackVtbl {
290 BEGIN_INTERFACE
291 HRESULT (WINAPI *QueryInterface)(IWiaEventCallback *This,REFIID riid,void **ppvObject);
292 ULONG (WINAPI *AddRef)(IWiaEventCallback *This);
293 ULONG (WINAPI *Release)(IWiaEventCallback *This);
294 HRESULT (WINAPI *ImageEventCallback)(IWiaEventCallback *This,const GUID *pEventGUID,BSTR bstrEventDescription,BSTR bstrDeviceID,BSTR bstrDeviceDescription,DWORD dwDeviceType,BSTR bstrFullItemName,ULONG *pulEventType,ULONG ulReserved);
295 END_INTERFACE
296 } IWiaEventCallbackVtbl;
297 struct IWiaEventCallback {
298 CONST_VTBL struct IWiaEventCallbackVtbl *lpVtbl;
299 };
300#ifdef COBJMACROS
301#define IWiaEventCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
302#define IWiaEventCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
303#define IWiaEventCallback_Release(This) (This)->lpVtbl->Release(This)
304#define IWiaEventCallback_ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved) (This)->lpVtbl->ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved)
305#endif
306#endif
307 HRESULT WINAPI IWiaEventCallback_ImageEventCallback_Proxy(IWiaEventCallback *This,const GUID *pEventGUID,BSTR bstrEventDescription,BSTR bstrDeviceID,BSTR bstrDeviceDescription,DWORD dwDeviceType,BSTR bstrFullItemName,ULONG *pulEventType,ULONG ulReserved);
308 void __RPC_STUB IWiaEventCallback_ImageEventCallback_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
309#endif
310
311 typedef struct _WIA_DATA_CALLBACK_HEADER {
312 LONG lSize;
313 GUID guidFormatID;
314 LONG lBufferSize;
315 LONG lPageCount;
316 } WIA_DATA_CALLBACK_HEADER;
317
318 typedef struct _WIA_DATA_CALLBACK_HEADER *PWIA_DATA_CALLBACK_HEADER;
319
320 extern RPC_IF_HANDLE __MIDL_itf_wia_0125_v0_0_c_ifspec;
321 extern RPC_IF_HANDLE __MIDL_itf_wia_0125_v0_0_s_ifspec;
322#ifndef __IWiaDataCallback_INTERFACE_DEFINED__
323#define __IWiaDataCallback_INTERFACE_DEFINED__
324 EXTERN_C const IID IID_IWiaDataCallback;
325#if defined(__cplusplus) && !defined(CINTERFACE)
326 struct IWiaDataCallback : public IUnknown {
327 public:
328 virtual HRESULT WINAPI BandedDataCallback(LONG lMessage,LONG lStatus,LONG lPercentComplete,LONG lOffset,LONG lLength,LONG lReserved,LONG lResLength,BYTE *pbBuffer) = 0;
329 };
330#else
331 typedef struct IWiaDataCallbackVtbl {
332 BEGIN_INTERFACE
333 HRESULT (WINAPI *QueryInterface)(IWiaDataCallback *This,REFIID riid,void **ppvObject);
334 ULONG (WINAPI *AddRef)(IWiaDataCallback *This);
335 ULONG (WINAPI *Release)(IWiaDataCallback *This);
336 HRESULT (WINAPI *BandedDataCallback)(IWiaDataCallback *This,LONG lMessage,LONG lStatus,LONG lPercentComplete,LONG lOffset,LONG lLength,LONG lReserved,LONG lResLength,BYTE *pbBuffer);
337 END_INTERFACE
338 } IWiaDataCallbackVtbl;
339 struct IWiaDataCallback {
340 CONST_VTBL struct IWiaDataCallbackVtbl *lpVtbl;
341 };
342#ifdef COBJMACROS
343#define IWiaDataCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
344#define IWiaDataCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
345#define IWiaDataCallback_Release(This) (This)->lpVtbl->Release(This)
346#define IWiaDataCallback_BandedDataCallback(This,lMessage,lStatus,lPercentComplete,lOffset,lLength,lReserved,lResLength,pbBuffer) (This)->lpVtbl->BandedDataCallback(This,lMessage,lStatus,lPercentComplete,lOffset,lLength,lReserved,lResLength,pbBuffer)
347#endif
348#endif
349 HRESULT WINAPI IWiaDataCallback_RemoteBandedDataCallback_Proxy(IWiaDataCallback *This,LONG lMessage,LONG lStatus,LONG lPercentComplete,LONG lOffset,LONG lLength,LONG lReserved,LONG lResLength,BYTE *pbBuffer);
350 void __RPC_STUB IWiaDataCallback_RemoteBandedDataCallback_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
351#endif
352
353 typedef struct _WIA_DATA_TRANSFER_INFO {
354 ULONG ulSize;
355 ULONG ulSection;
356 ULONG ulBufferSize;
357 WINBOOL bDoubleBuffer;
358 ULONG ulReserved1;
359 ULONG ulReserved2;
360 ULONG ulReserved3;
361 } WIA_DATA_TRANSFER_INFO;
362
363 typedef struct _WIA_DATA_TRANSFER_INFO *PWIA_DATA_TRANSFER_INFO;
364
365 typedef struct _WIA_EXTENDED_TRANSFER_INFO {
366 ULONG ulSize;
367 ULONG ulMinBufferSize;
368 ULONG ulOptimalBufferSize;
369 ULONG ulMaxBufferSize;
370 ULONG ulNumBuffers;
371 } WIA_EXTENDED_TRANSFER_INFO;
372
373 typedef struct _WIA_EXTENDED_TRANSFER_INFO *PWIA_EXTENDED_TRANSFER_INFO;
374
375 extern RPC_IF_HANDLE __MIDL_itf_wia_0126_v0_0_c_ifspec;
376 extern RPC_IF_HANDLE __MIDL_itf_wia_0126_v0_0_s_ifspec;
377#ifndef __IWiaDataTransfer_INTERFACE_DEFINED__
378#define __IWiaDataTransfer_INTERFACE_DEFINED__
379 EXTERN_C const IID IID_IWiaDataTransfer;
380#if defined(__cplusplus) && !defined(CINTERFACE)
381 struct IWiaDataTransfer : public IUnknown {
382 public:
383 virtual HRESULT WINAPI idtGetData(LPSTGMEDIUM pMedium,IWiaDataCallback *pIWiaDataCallback) = 0;
384 virtual HRESULT WINAPI idtGetBandedData(PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,IWiaDataCallback *pIWiaDataCallback) = 0;
385 virtual HRESULT WINAPI idtQueryGetData(WIA_FORMAT_INFO *pfe) = 0;
386 virtual HRESULT WINAPI idtEnumWIA_FORMAT_INFO(IEnumWIA_FORMAT_INFO **ppEnum) = 0;
387 virtual HRESULT WINAPI idtGetExtendedTransferInfo(PWIA_EXTENDED_TRANSFER_INFO pExtendedTransferInfo) = 0;
388 };
389#else
390 typedef struct IWiaDataTransferVtbl {
391 BEGIN_INTERFACE
392 HRESULT (WINAPI *QueryInterface)(IWiaDataTransfer *This,REFIID riid,void **ppvObject);
393 ULONG (WINAPI *AddRef)(IWiaDataTransfer *This);
394 ULONG (WINAPI *Release)(IWiaDataTransfer *This);
395 HRESULT (WINAPI *idtGetData)(IWiaDataTransfer *This,LPSTGMEDIUM pMedium,IWiaDataCallback *pIWiaDataCallback);
396 HRESULT (WINAPI *idtGetBandedData)(IWiaDataTransfer *This,PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,IWiaDataCallback *pIWiaDataCallback);
397 HRESULT (WINAPI *idtQueryGetData)(IWiaDataTransfer *This,WIA_FORMAT_INFO *pfe);
398 HRESULT (WINAPI *idtEnumWIA_FORMAT_INFO)(IWiaDataTransfer *This,IEnumWIA_FORMAT_INFO **ppEnum);
399 HRESULT (WINAPI *idtGetExtendedTransferInfo)(IWiaDataTransfer *This,PWIA_EXTENDED_TRANSFER_INFO pExtendedTransferInfo);
400 END_INTERFACE
401 } IWiaDataTransferVtbl;
402 struct IWiaDataTransfer {
403 CONST_VTBL struct IWiaDataTransferVtbl *lpVtbl;
404 };
405#ifdef COBJMACROS
406#define IWiaDataTransfer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
407#define IWiaDataTransfer_AddRef(This) (This)->lpVtbl->AddRef(This)
408#define IWiaDataTransfer_Release(This) (This)->lpVtbl->Release(This)
409#define IWiaDataTransfer_idtGetData(This,pMedium,pIWiaDataCallback) (This)->lpVtbl->idtGetData(This,pMedium,pIWiaDataCallback)
410#define IWiaDataTransfer_idtGetBandedData(This,pWiaDataTransInfo,pIWiaDataCallback) (This)->lpVtbl->idtGetBandedData(This,pWiaDataTransInfo,pIWiaDataCallback)
411#define IWiaDataTransfer_idtQueryGetData(This,pfe) (This)->lpVtbl->idtQueryGetData(This,pfe)
412#define IWiaDataTransfer_idtEnumWIA_FORMAT_INFO(This,ppEnum) (This)->lpVtbl->idtEnumWIA_FORMAT_INFO(This,ppEnum)
413#define IWiaDataTransfer_idtGetExtendedTransferInfo(This,pExtendedTransferInfo) (This)->lpVtbl->idtGetExtendedTransferInfo(This,pExtendedTransferInfo)
414#endif
415#endif
416 HRESULT WINAPI IWiaDataTransfer_idtGetDataEx_Proxy(IWiaDataTransfer *This,LPSTGMEDIUM pMedium,IWiaDataCallback *pIWiaDataCallback);
417 void __RPC_STUB IWiaDataTransfer_idtGetDataEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
418 HRESULT WINAPI IWiaDataTransfer_idtGetBandedDataEx_Proxy(IWiaDataTransfer *This,PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,IWiaDataCallback *pIWiaDataCallback);
419 void __RPC_STUB IWiaDataTransfer_idtGetBandedDataEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
420 HRESULT WINAPI IWiaDataTransfer_idtQueryGetData_Proxy(IWiaDataTransfer *This,WIA_FORMAT_INFO *pfe);
421 void __RPC_STUB IWiaDataTransfer_idtQueryGetData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
422 HRESULT WINAPI IWiaDataTransfer_idtEnumWIA_FORMAT_INFO_Proxy(IWiaDataTransfer *This,IEnumWIA_FORMAT_INFO **ppEnum);
423 void __RPC_STUB IWiaDataTransfer_idtEnumWIA_FORMAT_INFO_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
424 HRESULT WINAPI IWiaDataTransfer_idtGetExtendedTransferInfo_Proxy(IWiaDataTransfer *This,PWIA_EXTENDED_TRANSFER_INFO pExtendedTransferInfo);
425 void __RPC_STUB IWiaDataTransfer_idtGetExtendedTransferInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
426#endif
427
428#ifndef __IWiaItem_INTERFACE_DEFINED__
429#define __IWiaItem_INTERFACE_DEFINED__
430 EXTERN_C const IID IID_IWiaItem;
431#if defined(__cplusplus) && !defined(CINTERFACE)
432 struct IWiaItem : public IUnknown {
433 public:
434 virtual HRESULT WINAPI GetItemType(LONG *pItemType) = 0;
435 virtual HRESULT WINAPI AnalyzeItem(LONG lFlags) = 0;
436 virtual HRESULT WINAPI EnumChildItems(IEnumWiaItem **ppIEnumWiaItem) = 0;
437 virtual HRESULT WINAPI DeleteItem(LONG lFlags) = 0;
438 virtual HRESULT WINAPI CreateChildItem(LONG lFlags,BSTR bstrItemName,BSTR bstrFullItemName,IWiaItem **ppIWiaItem) = 0;
439 virtual HRESULT WINAPI EnumRegisterEventInfo(LONG lFlags,const GUID *pEventGUID,IEnumWIA_DEV_CAPS **ppIEnum) = 0;
440 virtual HRESULT WINAPI FindItemByName(LONG lFlags,BSTR bstrFullItemName,IWiaItem **ppIWiaItem) = 0;
441 virtual HRESULT WINAPI DeviceDlg(HWND hwndParent,LONG lFlags,LONG lIntent,LONG *plItemCount,IWiaItem ***ppIWiaItem) = 0;
442 virtual HRESULT WINAPI DeviceCommand(LONG lFlags,const GUID *pCmdGUID,IWiaItem **pIWiaItem) = 0;
443 virtual HRESULT WINAPI GetRootItem(IWiaItem **ppIWiaItem) = 0;
444 virtual HRESULT WINAPI EnumDeviceCapabilities(LONG lFlags,IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS) = 0;
445 virtual HRESULT WINAPI DumpItemData(BSTR *bstrData) = 0;
446 virtual HRESULT WINAPI DumpDrvItemData(BSTR *bstrData) = 0;
447 virtual HRESULT WINAPI DumpTreeItemData(BSTR *bstrData) = 0;
448 virtual HRESULT WINAPI Diagnostic(ULONG ulSize,BYTE *pBuffer) = 0;
449 };
450#else
451 typedef struct IWiaItemVtbl {
452 BEGIN_INTERFACE
453 HRESULT (WINAPI *QueryInterface)(IWiaItem *This,REFIID riid,void **ppvObject);
454 ULONG (WINAPI *AddRef)(IWiaItem *This);
455 ULONG (WINAPI *Release)(IWiaItem *This);
456 HRESULT (WINAPI *GetItemType)(IWiaItem *This,LONG *pItemType);
457 HRESULT (WINAPI *AnalyzeItem)(IWiaItem *This,LONG lFlags);
458 HRESULT (WINAPI *EnumChildItems)(IWiaItem *This,IEnumWiaItem **ppIEnumWiaItem);
459 HRESULT (WINAPI *DeleteItem)(IWiaItem *This,LONG lFlags);
460 HRESULT (WINAPI *CreateChildItem)(IWiaItem *This,LONG lFlags,BSTR bstrItemName,BSTR bstrFullItemName,IWiaItem **ppIWiaItem);
461 HRESULT (WINAPI *EnumRegisterEventInfo)(IWiaItem *This,LONG lFlags,const GUID *pEventGUID,IEnumWIA_DEV_CAPS **ppIEnum);
462 HRESULT (WINAPI *FindItemByName)(IWiaItem *This,LONG lFlags,BSTR bstrFullItemName,IWiaItem **ppIWiaItem);
463 HRESULT (WINAPI *DeviceDlg)(IWiaItem *This,HWND hwndParent,LONG lFlags,LONG lIntent,LONG *plItemCount,IWiaItem ***ppIWiaItem);
464 HRESULT (WINAPI *DeviceCommand)(IWiaItem *This,LONG lFlags,const GUID *pCmdGUID,IWiaItem **pIWiaItem);
465 HRESULT (WINAPI *GetRootItem)(IWiaItem *This,IWiaItem **ppIWiaItem);
466 HRESULT (WINAPI *EnumDeviceCapabilities)(IWiaItem *This,LONG lFlags,IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS);
467 HRESULT (WINAPI *DumpItemData)(IWiaItem *This,BSTR *bstrData);
468 HRESULT (WINAPI *DumpDrvItemData)(IWiaItem *This,BSTR *bstrData);
469 HRESULT (WINAPI *DumpTreeItemData)(IWiaItem *This,BSTR *bstrData);
470 HRESULT (WINAPI *Diagnostic)(IWiaItem *This,ULONG ulSize,BYTE *pBuffer);
471 END_INTERFACE
472 } IWiaItemVtbl;
473 struct IWiaItem {
474 CONST_VTBL struct IWiaItemVtbl *lpVtbl;
475 };
476#ifdef COBJMACROS
477#define IWiaItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
478#define IWiaItem_AddRef(This) (This)->lpVtbl->AddRef(This)
479#define IWiaItem_Release(This) (This)->lpVtbl->Release(This)
480#define IWiaItem_GetItemType(This,pItemType) (This)->lpVtbl->GetItemType(This,pItemType)
481#define IWiaItem_AnalyzeItem(This,lFlags) (This)->lpVtbl->AnalyzeItem(This,lFlags)
482#define IWiaItem_EnumChildItems(This,ppIEnumWiaItem) (This)->lpVtbl->EnumChildItems(This,ppIEnumWiaItem)
483#define IWiaItem_DeleteItem(This,lFlags) (This)->lpVtbl->DeleteItem(This,lFlags)
484#define IWiaItem_CreateChildItem(This,lFlags,bstrItemName,bstrFullItemName,ppIWiaItem) (This)->lpVtbl->CreateChildItem(This,lFlags,bstrItemName,bstrFullItemName,ppIWiaItem)
485#define IWiaItem_EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum) (This)->lpVtbl->EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum)
486#define IWiaItem_FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem) (This)->lpVtbl->FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem)
487#define IWiaItem_DeviceDlg(This,hwndParent,lFlags,lIntent,plItemCount,ppIWiaItem) (This)->lpVtbl->DeviceDlg(This,hwndParent,lFlags,lIntent,plItemCount,ppIWiaItem)
488#define IWiaItem_DeviceCommand(This,lFlags,pCmdGUID,pIWiaItem) (This)->lpVtbl->DeviceCommand(This,lFlags,pCmdGUID,pIWiaItem)
489#define IWiaItem_GetRootItem(This,ppIWiaItem) (This)->lpVtbl->GetRootItem(This,ppIWiaItem)
490#define IWiaItem_EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS) (This)->lpVtbl->EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS)
491#define IWiaItem_DumpItemData(This,bstrData) (This)->lpVtbl->DumpItemData(This,bstrData)
492#define IWiaItem_DumpDrvItemData(This,bstrData) (This)->lpVtbl->DumpDrvItemData(This,bstrData)
493#define IWiaItem_DumpTreeItemData(This,bstrData) (This)->lpVtbl->DumpTreeItemData(This,bstrData)
494#define IWiaItem_Diagnostic(This,ulSize,pBuffer) (This)->lpVtbl->Diagnostic(This,ulSize,pBuffer)
495#endif
496#endif
497 HRESULT WINAPI IWiaItem_GetItemType_Proxy(IWiaItem *This,LONG *pItemType);
498 void __RPC_STUB IWiaItem_GetItemType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
499 HRESULT WINAPI IWiaItem_AnalyzeItem_Proxy(IWiaItem *This,LONG lFlags);
500 void __RPC_STUB IWiaItem_AnalyzeItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
501 HRESULT WINAPI IWiaItem_EnumChildItems_Proxy(IWiaItem *This,IEnumWiaItem **ppIEnumWiaItem);
502 void __RPC_STUB IWiaItem_EnumChildItems_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
503 HRESULT WINAPI IWiaItem_DeleteItem_Proxy(IWiaItem *This,LONG lFlags);
504 void __RPC_STUB IWiaItem_DeleteItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
505 HRESULT WINAPI IWiaItem_CreateChildItem_Proxy(IWiaItem *This,LONG lFlags,BSTR bstrItemName,BSTR bstrFullItemName,IWiaItem **ppIWiaItem);
506 void __RPC_STUB IWiaItem_CreateChildItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
507 HRESULT WINAPI IWiaItem_EnumRegisterEventInfo_Proxy(IWiaItem *This,LONG lFlags,const GUID *pEventGUID,IEnumWIA_DEV_CAPS **ppIEnum);
508 void __RPC_STUB IWiaItem_EnumRegisterEventInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
509 HRESULT WINAPI IWiaItem_FindItemByName_Proxy(IWiaItem *This,LONG lFlags,BSTR bstrFullItemName,IWiaItem **ppIWiaItem);
510 void __RPC_STUB IWiaItem_FindItemByName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
511 HRESULT WINAPI IWiaItem_LocalDeviceDlg_Proxy(IWiaItem *This,HWND hwndParent,LONG lFlags,LONG lIntent,LONG *plItemCount,IWiaItem ***pIWiaItem);
512 void __RPC_STUB IWiaItem_LocalDeviceDlg_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
513 HRESULT WINAPI IWiaItem_DeviceCommand_Proxy(IWiaItem *This,LONG lFlags,const GUID *pCmdGUID,IWiaItem **pIWiaItem);
514 void __RPC_STUB IWiaItem_DeviceCommand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
515 HRESULT WINAPI IWiaItem_GetRootItem_Proxy(IWiaItem *This,IWiaItem **ppIWiaItem);
516 void __RPC_STUB IWiaItem_GetRootItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
517 HRESULT WINAPI IWiaItem_EnumDeviceCapabilities_Proxy(IWiaItem *This,LONG lFlags,IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS);
518 void __RPC_STUB IWiaItem_EnumDeviceCapabilities_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
519 HRESULT WINAPI IWiaItem_DumpItemData_Proxy(IWiaItem *This,BSTR *bstrData);
520 void __RPC_STUB IWiaItem_DumpItemData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
521 HRESULT WINAPI IWiaItem_DumpDrvItemData_Proxy(IWiaItem *This,BSTR *bstrData);
522 void __RPC_STUB IWiaItem_DumpDrvItemData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
523 HRESULT WINAPI IWiaItem_DumpTreeItemData_Proxy(IWiaItem *This,BSTR *bstrData);
524 void __RPC_STUB IWiaItem_DumpTreeItemData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
525 HRESULT WINAPI IWiaItem_Diagnostic_Proxy(IWiaItem *This,ULONG ulSize,BYTE *pBuffer);
526 void __RPC_STUB IWiaItem_Diagnostic_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
527#endif
528
529#ifndef __IWiaPropertyStorage_INTERFACE_DEFINED__
530#define __IWiaPropertyStorage_INTERFACE_DEFINED__
531 EXTERN_C const IID IID_IWiaPropertyStorage;
532#if defined(__cplusplus) && !defined(CINTERFACE)
533 struct IWiaPropertyStorage : public IUnknown {
534 public:
535 virtual HRESULT WINAPI ReadMultiple(ULONG cpspec,const PROPSPEC rgpspec[],PROPVARIANT rgpropvar[]) = 0;
536 virtual HRESULT WINAPI WriteMultiple(ULONG cpspec,const PROPSPEC rgpspec[],const PROPVARIANT rgpropvar[],PROPID propidNameFirst) = 0;
537 virtual HRESULT WINAPI DeleteMultiple(ULONG cpspec,const PROPSPEC rgpspec[]) = 0;
538 virtual HRESULT WINAPI ReadPropertyNames(ULONG cpropid,const PROPID rgpropid[],LPOLESTR rglpwstrName[]) = 0;
539 virtual HRESULT WINAPI WritePropertyNames(ULONG cpropid,const PROPID rgpropid[],const LPOLESTR rglpwstrName[]) = 0;
540 virtual HRESULT WINAPI DeletePropertyNames(ULONG cpropid,const PROPID rgpropid[]) = 0;
541 virtual HRESULT WINAPI Commit(DWORD grfCommitFlags) = 0;
542 virtual HRESULT WINAPI Revert(void) = 0;
543 virtual HRESULT WINAPI Enum(IEnumSTATPROPSTG **ppenum) = 0;
544 virtual HRESULT WINAPI SetTimes(const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime) = 0;
545 virtual HRESULT WINAPI SetClass(REFCLSID clsid) = 0;
546 virtual HRESULT WINAPI Stat(STATPROPSETSTG *pstatpsstg) = 0;
547 virtual HRESULT WINAPI GetPropertyAttributes(ULONG cpspec,PROPSPEC rgpspec[],ULONG rgflags[],PROPVARIANT rgpropvar[]) = 0;
548 virtual HRESULT WINAPI GetCount(ULONG *pulNumProps) = 0;
549 virtual HRESULT WINAPI GetPropertyStream(GUID *pCompatibilityId,IStream **ppIStream) = 0;
550 virtual HRESULT WINAPI SetPropertyStream(GUID *pCompatibilityId,IStream *pIStream) = 0;
551 };
552#else
553 typedef struct IWiaPropertyStorageVtbl {
554 BEGIN_INTERFACE
555 HRESULT (WINAPI *QueryInterface)(IWiaPropertyStorage *This,REFIID riid,void **ppvObject);
556 ULONG (WINAPI *AddRef)(IWiaPropertyStorage *This);
557 ULONG (WINAPI *Release)(IWiaPropertyStorage *This);
558 HRESULT (WINAPI *ReadMultiple)(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],PROPVARIANT rgpropvar[]);
559 HRESULT (WINAPI *WriteMultiple)(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],const PROPVARIANT rgpropvar[],PROPID propidNameFirst);
560 HRESULT (WINAPI *DeleteMultiple)(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[]);
561 HRESULT (WINAPI *ReadPropertyNames)(IWiaPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],LPOLESTR rglpwstrName[]);
562 HRESULT (WINAPI *WritePropertyNames)(IWiaPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],const LPOLESTR rglpwstrName[]);
563 HRESULT (WINAPI *DeletePropertyNames)(IWiaPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[]);
564 HRESULT (WINAPI *Commit)(IWiaPropertyStorage *This,DWORD grfCommitFlags);
565 HRESULT (WINAPI *Revert)(IWiaPropertyStorage *This);
566 HRESULT (WINAPI *Enum)(IWiaPropertyStorage *This,IEnumSTATPROPSTG **ppenum);
567 HRESULT (WINAPI *SetTimes)(IWiaPropertyStorage *This,const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime);
568 HRESULT (WINAPI *SetClass)(IWiaPropertyStorage *This,REFCLSID clsid);
569 HRESULT (WINAPI *Stat)(IWiaPropertyStorage *This,STATPROPSETSTG *pstatpsstg);
570 HRESULT (WINAPI *GetPropertyAttributes)(IWiaPropertyStorage *This,ULONG cpspec,PROPSPEC rgpspec[],ULONG rgflags[],PROPVARIANT rgpropvar[]);
571 HRESULT (WINAPI *GetCount)(IWiaPropertyStorage *This,ULONG *pulNumProps);
572 HRESULT (WINAPI *GetPropertyStream)(IWiaPropertyStorage *This,GUID *pCompatibilityId,IStream **ppIStream);
573 HRESULT (WINAPI *SetPropertyStream)(IWiaPropertyStorage *This,GUID *pCompatibilityId,IStream *pIStream);
574 END_INTERFACE
575 } IWiaPropertyStorageVtbl;
576 struct IWiaPropertyStorage {
577 CONST_VTBL struct IWiaPropertyStorageVtbl *lpVtbl;
578 };
579#ifdef COBJMACROS
580#define IWiaPropertyStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
581#define IWiaPropertyStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
582#define IWiaPropertyStorage_Release(This) (This)->lpVtbl->Release(This)
583#define IWiaPropertyStorage_ReadMultiple(This,cpspec,rgpspec,rgpropvar) (This)->lpVtbl->ReadMultiple(This,cpspec,rgpspec,rgpropvar)
584#define IWiaPropertyStorage_WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst) (This)->lpVtbl->WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst)
585#define IWiaPropertyStorage_DeleteMultiple(This,cpspec,rgpspec) (This)->lpVtbl->DeleteMultiple(This,cpspec,rgpspec)
586#define IWiaPropertyStorage_ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName) (This)->lpVtbl->ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName)
587#define IWiaPropertyStorage_WritePropertyNames(This,cpropid,rgpropid,rglpwstrName) (This)->lpVtbl->WritePropertyNames(This,cpropid,rgpropid,rglpwstrName)
588#define IWiaPropertyStorage_DeletePropertyNames(This,cpropid,rgpropid) (This)->lpVtbl->DeletePropertyNames(This,cpropid,rgpropid)
589#define IWiaPropertyStorage_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
590#define IWiaPropertyStorage_Revert(This) (This)->lpVtbl->Revert(This)
591#define IWiaPropertyStorage_Enum(This,ppenum) (This)->lpVtbl->Enum(This,ppenum)
592#define IWiaPropertyStorage_SetTimes(This,pctime,patime,pmtime) (This)->lpVtbl->SetTimes(This,pctime,patime,pmtime)
593#define IWiaPropertyStorage_SetClass(This,clsid) (This)->lpVtbl->SetClass(This,clsid)
594#define IWiaPropertyStorage_Stat(This,pstatpsstg) (This)->lpVtbl->Stat(This,pstatpsstg)
595#define IWiaPropertyStorage_GetPropertyAttributes(This,cpspec,rgpspec,rgflags,rgpropvar) (This)->lpVtbl->GetPropertyAttributes(This,cpspec,rgpspec,rgflags,rgpropvar)
596#define IWiaPropertyStorage_GetCount(This,pulNumProps) (This)->lpVtbl->GetCount(This,pulNumProps)
597#define IWiaPropertyStorage_GetPropertyStream(This,pCompatibilityId,ppIStream) (This)->lpVtbl->GetPropertyStream(This,pCompatibilityId,ppIStream)
598#define IWiaPropertyStorage_SetPropertyStream(This,pCompatibilityId,pIStream) (This)->lpVtbl->SetPropertyStream(This,pCompatibilityId,pIStream)
599#endif
600#endif
601 HRESULT WINAPI IWiaPropertyStorage_ReadMultiple_Proxy(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],PROPVARIANT rgpropvar[]);
602 void __RPC_STUB IWiaPropertyStorage_ReadMultiple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
603 HRESULT WINAPI IWiaPropertyStorage_RemoteWriteMultiple_Proxy(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC *rgpspec,const PROPVARIANT *rgpropvar,PROPID propidNameFirst);
604 void __RPC_STUB IWiaPropertyStorage_RemoteWriteMultiple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
605 HRESULT WINAPI IWiaPropertyStorage_DeleteMultiple_Proxy(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[]);
606 void __RPC_STUB IWiaPropertyStorage_DeleteMultiple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
607 HRESULT WINAPI IWiaPropertyStorage_ReadPropertyNames_Proxy(IWiaPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],LPOLESTR rglpwstrName[]);
608 void __RPC_STUB IWiaPropertyStorage_ReadPropertyNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
609 HRESULT WINAPI IWiaPropertyStorage_WritePropertyNames_Proxy(IWiaPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],const LPOLESTR rglpwstrName[]);
610 void __RPC_STUB IWiaPropertyStorage_WritePropertyNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
611 HRESULT WINAPI IWiaPropertyStorage_DeletePropertyNames_Proxy(IWiaPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[]);
612 void __RPC_STUB IWiaPropertyStorage_DeletePropertyNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
613 HRESULT WINAPI IWiaPropertyStorage_Commit_Proxy(IWiaPropertyStorage *This,DWORD grfCommitFlags);
614 void __RPC_STUB IWiaPropertyStorage_Commit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
615 HRESULT WINAPI IWiaPropertyStorage_Revert_Proxy(IWiaPropertyStorage *This);
616 void __RPC_STUB IWiaPropertyStorage_Revert_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
617 HRESULT WINAPI IWiaPropertyStorage_Enum_Proxy(IWiaPropertyStorage *This,IEnumSTATPROPSTG **ppenum);
618 void __RPC_STUB IWiaPropertyStorage_Enum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
619 HRESULT WINAPI IWiaPropertyStorage_SetTimes_Proxy(IWiaPropertyStorage *This,const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime);
620 void __RPC_STUB IWiaPropertyStorage_SetTimes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
621 HRESULT WINAPI IWiaPropertyStorage_SetClass_Proxy(IWiaPropertyStorage *This,REFCLSID clsid);
622 void __RPC_STUB IWiaPropertyStorage_SetClass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
623 HRESULT WINAPI IWiaPropertyStorage_Stat_Proxy(IWiaPropertyStorage *This,STATPROPSETSTG *pstatpsstg);
624 void __RPC_STUB IWiaPropertyStorage_Stat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
625 HRESULT WINAPI IWiaPropertyStorage_GetPropertyAttributes_Proxy(IWiaPropertyStorage *This,ULONG cpspec,PROPSPEC rgpspec[],ULONG rgflags[],PROPVARIANT rgpropvar[]);
626 void __RPC_STUB IWiaPropertyStorage_GetPropertyAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
627 HRESULT WINAPI IWiaPropertyStorage_GetCount_Proxy(IWiaPropertyStorage *This,ULONG *pulNumProps);
628 void __RPC_STUB IWiaPropertyStorage_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
629 HRESULT WINAPI IWiaPropertyStorage_GetPropertyStream_Proxy(IWiaPropertyStorage *This,GUID *pCompatibilityId,IStream **ppIStream);
630 void __RPC_STUB IWiaPropertyStorage_GetPropertyStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
631 HRESULT WINAPI IWiaPropertyStorage_RemoteSetPropertyStream_Proxy(IWiaPropertyStorage *This,GUID *pCompatibilityId,IStream *pIStream);
632 void __RPC_STUB IWiaPropertyStorage_RemoteSetPropertyStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
633#endif
634
635#ifndef __IEnumWiaItem_INTERFACE_DEFINED__
636#define __IEnumWiaItem_INTERFACE_DEFINED__
637 EXTERN_C const IID IID_IEnumWiaItem;
638#if defined(__cplusplus) && !defined(CINTERFACE)
639 struct IEnumWiaItem : public IUnknown {
640 public:
641 virtual HRESULT WINAPI Next(ULONG celt,IWiaItem **ppIWiaItem,ULONG *pceltFetched) = 0;
642 virtual HRESULT WINAPI Skip(ULONG celt) = 0;
643 virtual HRESULT WINAPI Reset(void) = 0;
644 virtual HRESULT WINAPI Clone(IEnumWiaItem **ppIEnum) = 0;
645 virtual HRESULT WINAPI GetCount(ULONG *celt) = 0;
646 };
647#else
648 typedef struct IEnumWiaItemVtbl {
649 BEGIN_INTERFACE
650 HRESULT (WINAPI *QueryInterface)(IEnumWiaItem *This,REFIID riid,void **ppvObject);
651 ULONG (WINAPI *AddRef)(IEnumWiaItem *This);
652 ULONG (WINAPI *Release)(IEnumWiaItem *This);
653 HRESULT (WINAPI *Next)(IEnumWiaItem *This,ULONG celt,IWiaItem **ppIWiaItem,ULONG *pceltFetched);
654 HRESULT (WINAPI *Skip)(IEnumWiaItem *This,ULONG celt);
655 HRESULT (WINAPI *Reset)(IEnumWiaItem *This);
656 HRESULT (WINAPI *Clone)(IEnumWiaItem *This,IEnumWiaItem **ppIEnum);
657 HRESULT (WINAPI *GetCount)(IEnumWiaItem *This,ULONG *celt);
658 END_INTERFACE
659 } IEnumWiaItemVtbl;
660 struct IEnumWiaItem {
661 CONST_VTBL struct IEnumWiaItemVtbl *lpVtbl;
662 };
663#ifdef COBJMACROS
664#define IEnumWiaItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
665#define IEnumWiaItem_AddRef(This) (This)->lpVtbl->AddRef(This)
666#define IEnumWiaItem_Release(This) (This)->lpVtbl->Release(This)
667#define IEnumWiaItem_Next(This,celt,ppIWiaItem,pceltFetched) (This)->lpVtbl->Next(This,celt,ppIWiaItem,pceltFetched)
668#define IEnumWiaItem_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
669#define IEnumWiaItem_Reset(This) (This)->lpVtbl->Reset(This)
670#define IEnumWiaItem_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
671#define IEnumWiaItem_GetCount(This,celt) (This)->lpVtbl->GetCount(This,celt)
672#endif
673#endif
674 HRESULT WINAPI IEnumWiaItem_RemoteNext_Proxy(IEnumWiaItem *This,ULONG celt,IWiaItem **ppIWiaItem,ULONG *pceltFetched);
675 void __RPC_STUB IEnumWiaItem_RemoteNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
676 HRESULT WINAPI IEnumWiaItem_Skip_Proxy(IEnumWiaItem *This,ULONG celt);
677 void __RPC_STUB IEnumWiaItem_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
678 HRESULT WINAPI IEnumWiaItem_Reset_Proxy(IEnumWiaItem *This);
679 void __RPC_STUB IEnumWiaItem_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
680 HRESULT WINAPI IEnumWiaItem_Clone_Proxy(IEnumWiaItem *This,IEnumWiaItem **ppIEnum);
681 void __RPC_STUB IEnumWiaItem_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
682 HRESULT WINAPI IEnumWiaItem_GetCount_Proxy(IEnumWiaItem *This,ULONG *celt);
683 void __RPC_STUB IEnumWiaItem_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
684#endif
685
686 typedef struct _WIA_DEV_CAP {
687 GUID guid;
688 ULONG ulFlags;
689 BSTR bstrName;
690 BSTR bstrDescription;
691 BSTR bstrIcon;
692 BSTR bstrCommandline;
693 } WIA_DEV_CAP;
694
695 typedef struct _WIA_DEV_CAP *PWIA_DEV_CAP;
696 typedef struct _WIA_DEV_CAP WIA_EVENT_HANDLER;
697 typedef struct _WIA_DEV_CAP *PWIA_EVENT_HANDLER;
698
699 extern RPC_IF_HANDLE __MIDL_itf_wia_0130_v0_0_c_ifspec;
700 extern RPC_IF_HANDLE __MIDL_itf_wia_0130_v0_0_s_ifspec;
701#ifndef __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__
702#define __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__
703 EXTERN_C const IID IID_IEnumWIA_DEV_CAPS;
704#if defined(__cplusplus) && !defined(CINTERFACE)
705 struct IEnumWIA_DEV_CAPS : public IUnknown {
706 public:
707 virtual HRESULT WINAPI Next(ULONG celt,WIA_DEV_CAP *rgelt,ULONG *pceltFetched) = 0;
708 virtual HRESULT WINAPI Skip(ULONG celt) = 0;
709 virtual HRESULT WINAPI Reset(void) = 0;
710 virtual HRESULT WINAPI Clone(IEnumWIA_DEV_CAPS **ppIEnum) = 0;
711 virtual HRESULT WINAPI GetCount(ULONG *pcelt) = 0;
712 };
713#else
714 typedef struct IEnumWIA_DEV_CAPSVtbl {
715 BEGIN_INTERFACE
716 HRESULT (WINAPI *QueryInterface)(IEnumWIA_DEV_CAPS *This,REFIID riid,void **ppvObject);
717 ULONG (WINAPI *AddRef)(IEnumWIA_DEV_CAPS *This);
718 ULONG (WINAPI *Release)(IEnumWIA_DEV_CAPS *This);
719 HRESULT (WINAPI *Next)(IEnumWIA_DEV_CAPS *This,ULONG celt,WIA_DEV_CAP *rgelt,ULONG *pceltFetched);
720 HRESULT (WINAPI *Skip)(IEnumWIA_DEV_CAPS *This,ULONG celt);
721 HRESULT (WINAPI *Reset)(IEnumWIA_DEV_CAPS *This);
722 HRESULT (WINAPI *Clone)(IEnumWIA_DEV_CAPS *This,IEnumWIA_DEV_CAPS **ppIEnum);
723 HRESULT (WINAPI *GetCount)(IEnumWIA_DEV_CAPS *This,ULONG *pcelt);
724 END_INTERFACE
725 } IEnumWIA_DEV_CAPSVtbl;
726 struct IEnumWIA_DEV_CAPS {
727 CONST_VTBL struct IEnumWIA_DEV_CAPSVtbl *lpVtbl;
728 };
729#ifdef COBJMACROS
730#define IEnumWIA_DEV_CAPS_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
731#define IEnumWIA_DEV_CAPS_AddRef(This) (This)->lpVtbl->AddRef(This)
732#define IEnumWIA_DEV_CAPS_Release(This) (This)->lpVtbl->Release(This)
733#define IEnumWIA_DEV_CAPS_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
734#define IEnumWIA_DEV_CAPS_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
735#define IEnumWIA_DEV_CAPS_Reset(This) (This)->lpVtbl->Reset(This)
736#define IEnumWIA_DEV_CAPS_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
737#define IEnumWIA_DEV_CAPS_GetCount(This,pcelt) (This)->lpVtbl->GetCount(This,pcelt)
738#endif
739#endif
740 HRESULT WINAPI IEnumWIA_DEV_CAPS_RemoteNext_Proxy(IEnumWIA_DEV_CAPS *This,ULONG celt,WIA_DEV_CAP *rgelt,ULONG *pceltFetched);
741 void __RPC_STUB IEnumWIA_DEV_CAPS_RemoteNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
742 HRESULT WINAPI IEnumWIA_DEV_CAPS_Skip_Proxy(IEnumWIA_DEV_CAPS *This,ULONG celt);
743 void __RPC_STUB IEnumWIA_DEV_CAPS_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
744 HRESULT WINAPI IEnumWIA_DEV_CAPS_Reset_Proxy(IEnumWIA_DEV_CAPS *This);
745 void __RPC_STUB IEnumWIA_DEV_CAPS_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
746 HRESULT WINAPI IEnumWIA_DEV_CAPS_Clone_Proxy(IEnumWIA_DEV_CAPS *This,IEnumWIA_DEV_CAPS **ppIEnum);
747 void __RPC_STUB IEnumWIA_DEV_CAPS_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
748 HRESULT WINAPI IEnumWIA_DEV_CAPS_GetCount_Proxy(IEnumWIA_DEV_CAPS *This,ULONG *pcelt);
749 void __RPC_STUB IEnumWIA_DEV_CAPS_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
750#endif
751
752#ifndef __IEnumWIA_FORMAT_INFO_INTERFACE_DEFINED__
753#define __IEnumWIA_FORMAT_INFO_INTERFACE_DEFINED__
754 EXTERN_C const IID IID_IEnumWIA_FORMAT_INFO;
755#if defined(__cplusplus) && !defined(CINTERFACE)
756 struct IEnumWIA_FORMAT_INFO : public IUnknown {
757 public:
758 virtual HRESULT WINAPI Next(ULONG celt,WIA_FORMAT_INFO *rgelt,ULONG *pceltFetched) = 0;
759 virtual HRESULT WINAPI Skip(ULONG celt) = 0;
760 virtual HRESULT WINAPI Reset(void) = 0;
761 virtual HRESULT WINAPI Clone(IEnumWIA_FORMAT_INFO **ppIEnum) = 0;
762 virtual HRESULT WINAPI GetCount(ULONG *pcelt) = 0;
763 };
764#else
765 typedef struct IEnumWIA_FORMAT_INFOVtbl {
766 BEGIN_INTERFACE
767 HRESULT (WINAPI *QueryInterface)(IEnumWIA_FORMAT_INFO *This,REFIID riid,void **ppvObject);
768 ULONG (WINAPI *AddRef)(IEnumWIA_FORMAT_INFO *This);
769 ULONG (WINAPI *Release)(IEnumWIA_FORMAT_INFO *This);
770 HRESULT (WINAPI *Next)(IEnumWIA_FORMAT_INFO *This,ULONG celt,WIA_FORMAT_INFO *rgelt,ULONG *pceltFetched);
771 HRESULT (WINAPI *Skip)(IEnumWIA_FORMAT_INFO *This,ULONG celt);
772 HRESULT (WINAPI *Reset)(IEnumWIA_FORMAT_INFO *This);
773 HRESULT (WINAPI *Clone)(IEnumWIA_FORMAT_INFO *This,IEnumWIA_FORMAT_INFO **ppIEnum);
774 HRESULT (WINAPI *GetCount)(IEnumWIA_FORMAT_INFO *This,ULONG *pcelt);
775 END_INTERFACE
776 } IEnumWIA_FORMAT_INFOVtbl;
777 struct IEnumWIA_FORMAT_INFO {
778 CONST_VTBL struct IEnumWIA_FORMAT_INFOVtbl *lpVtbl;
779 };
780#ifdef COBJMACROS
781#define IEnumWIA_FORMAT_INFO_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
782#define IEnumWIA_FORMAT_INFO_AddRef(This) (This)->lpVtbl->AddRef(This)
783#define IEnumWIA_FORMAT_INFO_Release(This) (This)->lpVtbl->Release(This)
784#define IEnumWIA_FORMAT_INFO_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
785#define IEnumWIA_FORMAT_INFO_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
786#define IEnumWIA_FORMAT_INFO_Reset(This) (This)->lpVtbl->Reset(This)
787#define IEnumWIA_FORMAT_INFO_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
788#define IEnumWIA_FORMAT_INFO_GetCount(This,pcelt) (This)->lpVtbl->GetCount(This,pcelt)
789#endif
790#endif
791 HRESULT WINAPI IEnumWIA_FORMAT_INFO_RemoteNext_Proxy(IEnumWIA_FORMAT_INFO *This,ULONG celt,WIA_FORMAT_INFO *rgelt,ULONG *pceltFetched);
792 void __RPC_STUB IEnumWIA_FORMAT_INFO_RemoteNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
793 HRESULT WINAPI IEnumWIA_FORMAT_INFO_Skip_Proxy(IEnumWIA_FORMAT_INFO *This,ULONG celt);
794 void __RPC_STUB IEnumWIA_FORMAT_INFO_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
795 HRESULT WINAPI IEnumWIA_FORMAT_INFO_Reset_Proxy(IEnumWIA_FORMAT_INFO *This);
796 void __RPC_STUB IEnumWIA_FORMAT_INFO_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
797 HRESULT WINAPI IEnumWIA_FORMAT_INFO_Clone_Proxy(IEnumWIA_FORMAT_INFO *This,IEnumWIA_FORMAT_INFO **ppIEnum);
798 void __RPC_STUB IEnumWIA_FORMAT_INFO_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
799 HRESULT WINAPI IEnumWIA_FORMAT_INFO_GetCount_Proxy(IEnumWIA_FORMAT_INFO *This,ULONG *pcelt);
800 void __RPC_STUB IEnumWIA_FORMAT_INFO_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
801#endif
802
803#ifndef __IWiaLog_INTERFACE_DEFINED__
804#define __IWiaLog_INTERFACE_DEFINED__
805 EXTERN_C const IID IID_IWiaLog;
806#if defined(__cplusplus) && !defined(CINTERFACE)
807 struct IWiaLog : public IUnknown {
808 public:
809 virtual HRESULT WINAPI InitializeLog(LONG hInstance) = 0;
810 virtual HRESULT WINAPI hResult(HRESULT hResult) = 0;
811 virtual HRESULT WINAPI Log(LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText) = 0;
812 };
813#else
814 typedef struct IWiaLogVtbl {
815 BEGIN_INTERFACE
816 HRESULT (WINAPI *QueryInterface)(IWiaLog *This,REFIID riid,void **ppvObject);
817 ULONG (WINAPI *AddRef)(IWiaLog *This);
818 ULONG (WINAPI *Release)(IWiaLog *This);
819 HRESULT (WINAPI *InitializeLog)(IWiaLog *This,LONG hInstance);
820 HRESULT (WINAPI *hResult)(IWiaLog *This,HRESULT hResult);
821 HRESULT (WINAPI *Log)(IWiaLog *This,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText);
822 END_INTERFACE
823 } IWiaLogVtbl;
824 struct IWiaLog {
825 CONST_VTBL struct IWiaLogVtbl *lpVtbl;
826 };
827#ifdef COBJMACROS
828#define IWiaLog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
829#define IWiaLog_AddRef(This) (This)->lpVtbl->AddRef(This)
830#define IWiaLog_Release(This) (This)->lpVtbl->Release(This)
831#define IWiaLog_InitializeLog(This,hInstance) (This)->lpVtbl->InitializeLog(This,hInstance)
832#define IWiaLog_hResult(This,hResult) (This)->lpVtbl->hResult(This,hResult)
833#define IWiaLog_Log(This,lFlags,lResID,lDetail,bstrText) (This)->lpVtbl->Log(This,lFlags,lResID,lDetail,bstrText)
834#endif
835#endif
836 HRESULT WINAPI IWiaLog_InitializeLog_Proxy(IWiaLog *This,LONG hInstance);
837 void __RPC_STUB IWiaLog_InitializeLog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
838 HRESULT WINAPI IWiaLog_hResult_Proxy(IWiaLog *This,HRESULT hResult);
839 void __RPC_STUB IWiaLog_hResult_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
840 HRESULT WINAPI IWiaLog_Log_Proxy(IWiaLog *This,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText);
841 void __RPC_STUB IWiaLog_Log_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
842#endif
843
844#ifndef __IWiaLogEx_INTERFACE_DEFINED__
845#define __IWiaLogEx_INTERFACE_DEFINED__
846 EXTERN_C const IID IID_IWiaLogEx;
847#if defined(__cplusplus) && !defined(CINTERFACE)
848 struct IWiaLogEx : public IUnknown {
849 public:
850 virtual HRESULT WINAPI InitializeLogEx(BYTE *hInstance) = 0;
851 virtual HRESULT WINAPI hResult(HRESULT hResult) = 0;
852 virtual HRESULT WINAPI Log(LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText) = 0;
853 virtual HRESULT WINAPI hResultEx(LONG lMethodId,HRESULT hResult) = 0;
854 virtual HRESULT WINAPI LogEx(LONG lMethodId,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText) = 0;
855 };
856#else
857 typedef struct IWiaLogExVtbl {
858 BEGIN_INTERFACE
859 HRESULT (WINAPI *QueryInterface)(IWiaLogEx *This,REFIID riid,void **ppvObject);
860 ULONG (WINAPI *AddRef)(IWiaLogEx *This);
861 ULONG (WINAPI *Release)(IWiaLogEx *This);
862 HRESULT (WINAPI *InitializeLogEx)(IWiaLogEx *This,BYTE *hInstance);
863 HRESULT (WINAPI *hResult)(IWiaLogEx *This,HRESULT hResult);
864 HRESULT (WINAPI *Log)(IWiaLogEx *This,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText);
865 HRESULT (WINAPI *hResultEx)(IWiaLogEx *This,LONG lMethodId,HRESULT hResult);
866 HRESULT (WINAPI *LogEx)(IWiaLogEx *This,LONG lMethodId,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText);
867 END_INTERFACE
868 } IWiaLogExVtbl;
869 struct IWiaLogEx {
870 CONST_VTBL struct IWiaLogExVtbl *lpVtbl;
871 };
872#ifdef COBJMACROS
873#define IWiaLogEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
874#define IWiaLogEx_AddRef(This) (This)->lpVtbl->AddRef(This)
875#define IWiaLogEx_Release(This) (This)->lpVtbl->Release(This)
876#define IWiaLogEx_InitializeLogEx(This,hInstance) (This)->lpVtbl->InitializeLogEx(This,hInstance)
877#define IWiaLogEx_hResult(This,hResult) (This)->lpVtbl->hResult(This,hResult)
878#define IWiaLogEx_Log(This,lFlags,lResID,lDetail,bstrText) (This)->lpVtbl->Log(This,lFlags,lResID,lDetail,bstrText)
879#define IWiaLogEx_hResultEx(This,lMethodId,hResult) (This)->lpVtbl->hResultEx(This,lMethodId,hResult)
880#define IWiaLogEx_LogEx(This,lMethodId,lFlags,lResID,lDetail,bstrText) (This)->lpVtbl->LogEx(This,lMethodId,lFlags,lResID,lDetail,bstrText)
881#endif
882#endif
883 HRESULT WINAPI IWiaLogEx_InitializeLogEx_Proxy(IWiaLogEx *This,BYTE *hInstance);
884 void __RPC_STUB IWiaLogEx_InitializeLogEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
885 HRESULT WINAPI IWiaLogEx_hResult_Proxy(IWiaLogEx *This,HRESULT hResult);
886 void __RPC_STUB IWiaLogEx_hResult_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
887 HRESULT WINAPI IWiaLogEx_Log_Proxy(IWiaLogEx *This,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText);
888 void __RPC_STUB IWiaLogEx_Log_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
889 HRESULT WINAPI IWiaLogEx_hResultEx_Proxy(IWiaLogEx *This,LONG lMethodId,HRESULT hResult);
890 void __RPC_STUB IWiaLogEx_hResultEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
891 HRESULT WINAPI IWiaLogEx_LogEx_Proxy(IWiaLogEx *This,LONG lMethodId,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText);
892 void __RPC_STUB IWiaLogEx_LogEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
893#endif
894
895#ifndef __IWiaNotifyDevMgr_INTERFACE_DEFINED__
896#define __IWiaNotifyDevMgr_INTERFACE_DEFINED__
897 EXTERN_C const IID IID_IWiaNotifyDevMgr;
898#if defined(__cplusplus) && !defined(CINTERFACE)
899 struct IWiaNotifyDevMgr : public IUnknown {
900 public:
901 virtual HRESULT WINAPI NewDeviceArrival(void) = 0;
902 };
903#else
904 typedef struct IWiaNotifyDevMgrVtbl {
905 BEGIN_INTERFACE
906 HRESULT (WINAPI *QueryInterface)(IWiaNotifyDevMgr *This,REFIID riid,void **ppvObject);
907 ULONG (WINAPI *AddRef)(IWiaNotifyDevMgr *This);
908 ULONG (WINAPI *Release)(IWiaNotifyDevMgr *This);
909 HRESULT (WINAPI *NewDeviceArrival)(IWiaNotifyDevMgr *This);
910 END_INTERFACE
911 } IWiaNotifyDevMgrVtbl;
912 struct IWiaNotifyDevMgr {
913 CONST_VTBL struct IWiaNotifyDevMgrVtbl *lpVtbl;
914 };
915#ifdef COBJMACROS
916#define IWiaNotifyDevMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
917#define IWiaNotifyDevMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
918#define IWiaNotifyDevMgr_Release(This) (This)->lpVtbl->Release(This)
919#define IWiaNotifyDevMgr_NewDeviceArrival(This) (This)->lpVtbl->NewDeviceArrival(This)
920#endif
921#endif
922 HRESULT WINAPI IWiaNotifyDevMgr_NewDeviceArrival_Proxy(IWiaNotifyDevMgr *This);
923 void __RPC_STUB IWiaNotifyDevMgr_NewDeviceArrival_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
924#endif
925
926#ifndef __IWiaItemExtras_INTERFACE_DEFINED__
927#define __IWiaItemExtras_INTERFACE_DEFINED__
928 EXTERN_C const IID IID_IWiaItemExtras;
929#if defined(__cplusplus) && !defined(CINTERFACE)
930 struct IWiaItemExtras : public IUnknown {
931 public:
932 virtual HRESULT WINAPI GetExtendedErrorInfo(BSTR *bstrErrorText) = 0;
933 virtual HRESULT WINAPI Escape(DWORD dwEscapeCode,BYTE *lpInData,DWORD cbInDataSize,BYTE *pOutData,DWORD dwOutDataSize,DWORD *pdwActualDataSize) = 0;
934 virtual HRESULT WINAPI CancelPendingIO(void) = 0;
935 };
936#else
937 typedef struct IWiaItemExtrasVtbl {
938 BEGIN_INTERFACE
939 HRESULT (WINAPI *QueryInterface)(IWiaItemExtras *This,REFIID riid,void **ppvObject);
940 ULONG (WINAPI *AddRef)(IWiaItemExtras *This);
941 ULONG (WINAPI *Release)(IWiaItemExtras *This);
942 HRESULT (WINAPI *GetExtendedErrorInfo)(IWiaItemExtras *This,BSTR *bstrErrorText);
943 HRESULT (WINAPI *Escape)(IWiaItemExtras *This,DWORD dwEscapeCode,BYTE *lpInData,DWORD cbInDataSize,BYTE *pOutData,DWORD dwOutDataSize,DWORD *pdwActualDataSize);
944 HRESULT (WINAPI *CancelPendingIO)(IWiaItemExtras *This);
945 END_INTERFACE
946 } IWiaItemExtrasVtbl;
947 struct IWiaItemExtras {
948 CONST_VTBL struct IWiaItemExtrasVtbl *lpVtbl;
949 };
950#ifdef COBJMACROS
951#define IWiaItemExtras_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
952#define IWiaItemExtras_AddRef(This) (This)->lpVtbl->AddRef(This)
953#define IWiaItemExtras_Release(This) (This)->lpVtbl->Release(This)
954#define IWiaItemExtras_GetExtendedErrorInfo(This,bstrErrorText) (This)->lpVtbl->GetExtendedErrorInfo(This,bstrErrorText)
955#define IWiaItemExtras_Escape(This,dwEscapeCode,lpInData,cbInDataSize,pOutData,dwOutDataSize,pdwActualDataSize) (This)->lpVtbl->Escape(This,dwEscapeCode,lpInData,cbInDataSize,pOutData,dwOutDataSize,pdwActualDataSize)
956#define IWiaItemExtras_CancelPendingIO(This) (This)->lpVtbl->CancelPendingIO(This)
957#endif
958#endif
959 HRESULT WINAPI IWiaItemExtras_GetExtendedErrorInfo_Proxy(IWiaItemExtras *This,BSTR *bstrErrorText);
960 void __RPC_STUB IWiaItemExtras_GetExtendedErrorInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
961 HRESULT WINAPI IWiaItemExtras_Escape_Proxy(IWiaItemExtras *This,DWORD dwEscapeCode,BYTE *lpInData,DWORD cbInDataSize,BYTE *pOutData,DWORD dwOutDataSize,DWORD *pdwActualDataSize);
962 void __RPC_STUB IWiaItemExtras_Escape_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
963 HRESULT WINAPI IWiaItemExtras_CancelPendingIO_Proxy(IWiaItemExtras *This);
964 void __RPC_STUB IWiaItemExtras_CancelPendingIO_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
965#endif
966
967#ifndef __WiaDevMgr_LIBRARY_DEFINED__
968#define __WiaDevMgr_LIBRARY_DEFINED__
969 EXTERN_C const IID LIBID_WiaDevMgr;
970 EXTERN_C const CLSID CLSID_WiaDevMgr;
971#ifdef __cplusplus
972 class WiaDevMgr;
973#endif
974 EXTERN_C const CLSID CLSID_WiaLog;
975#ifdef __cplusplus
976 class WiaLog;
977#endif
978#endif
979
980 ULONG __RPC_API BSTR_UserSize(ULONG *,ULONG,BSTR *);
981 unsigned char *__RPC_API BSTR_UserMarshal(ULONG *,unsigned char *,BSTR *);
982 unsigned char *__RPC_API BSTR_UserUnmarshal(ULONG *,unsigned char *,BSTR *);
983 void __RPC_API BSTR_UserFree(ULONG *,BSTR *);
984 ULONG __RPC_API HWND_UserSize(ULONG *,ULONG,HWND *);
985 unsigned char *__RPC_API HWND_UserMarshal(ULONG *,unsigned char *,HWND *);
986 unsigned char *__RPC_API HWND_UserUnmarshal(ULONG *,unsigned char *,HWND *);
987 void __RPC_API HWND_UserFree(ULONG *,HWND *);
988 ULONG __RPC_API LPSAFEARRAY_UserSize(ULONG *,ULONG,LPSAFEARRAY *);
989 unsigned char *__RPC_API LPSAFEARRAY_UserMarshal(ULONG *,unsigned char *,LPSAFEARRAY *);
990 unsigned char *__RPC_API LPSAFEARRAY_UserUnmarshal(ULONG *,unsigned char *,LPSAFEARRAY *);
991 void __RPC_API LPSAFEARRAY_UserFree(ULONG *,LPSAFEARRAY *);
992 ULONG __RPC_API STGMEDIUM_UserSize(ULONG *,ULONG,STGMEDIUM *);
993 unsigned char *__RPC_API STGMEDIUM_UserMarshal(ULONG *,unsigned char *,STGMEDIUM *);
994 unsigned char *__RPC_API STGMEDIUM_UserUnmarshal(ULONG *,unsigned char *,STGMEDIUM *);
995 void __RPC_API STGMEDIUM_UserFree(ULONG *,STGMEDIUM *);
996
997 HRESULT WINAPI IWiaDevMgr_CreateDevice_Proxy(IWiaDevMgr *This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot);
998 HRESULT WINAPI IWiaDevMgr_CreateDevice_Stub(IWiaDevMgr *This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot);
999 HRESULT WINAPI IWiaDevMgr_SelectDeviceDlg_Proxy(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot);
1000 HRESULT WINAPI IWiaDevMgr_SelectDeviceDlg_Stub(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot);
1001 HRESULT WINAPI IWiaDevMgr_SelectDeviceDlgID_Proxy(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID);
1002 HRESULT WINAPI IWiaDevMgr_SelectDeviceDlgID_Stub(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID);
1003 HRESULT WINAPI IWiaDevMgr_GetImageDlg_Proxy(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat);
1004 HRESULT WINAPI IWiaDevMgr_GetImageDlg_Stub(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat);
1005 HRESULT WINAPI IWiaDevMgr_RegisterEventCallbackProgram_Proxy(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
1006 HRESULT WINAPI IWiaDevMgr_RegisterEventCallbackProgram_Stub(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
1007 HRESULT WINAPI IWiaDevMgr_RegisterEventCallbackInterface_Proxy(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject);
1008 HRESULT WINAPI IWiaDevMgr_RegisterEventCallbackInterface_Stub(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject);
1009 HRESULT WINAPI IWiaDevMgr_RegisterEventCallbackCLSID_Proxy(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
1010 HRESULT WINAPI IWiaDevMgr_RegisterEventCallbackCLSID_Stub(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
1011 HRESULT WINAPI IEnumWIA_DEV_INFO_Next_Proxy(IEnumWIA_DEV_INFO *This,ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched);
1012 HRESULT WINAPI IEnumWIA_DEV_INFO_Next_Stub(IEnumWIA_DEV_INFO *This,ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched);
1013 HRESULT WINAPI IWiaDataCallback_BandedDataCallback_Proxy(IWiaDataCallback *This,LONG lMessage,LONG lStatus,LONG lPercentComplete,LONG lOffset,LONG lLength,LONG lReserved,LONG lResLength,BYTE *pbBuffer);
1014 HRESULT WINAPI IWiaDataCallback_BandedDataCallback_Stub(IWiaDataCallback *This,LONG lMessage,LONG lStatus,LONG lPercentComplete,LONG lOffset,LONG lLength,LONG lReserved,LONG lResLength,BYTE *pbBuffer);
1015 HRESULT WINAPI IWiaDataTransfer_idtGetData_Proxy(IWiaDataTransfer *This,LPSTGMEDIUM pMedium,IWiaDataCallback *pIWiaDataCallback);
1016 HRESULT WINAPI IWiaDataTransfer_idtGetData_Stub(IWiaDataTransfer *This,LPSTGMEDIUM pMedium,IWiaDataCallback *pIWiaDataCallback);
1017 HRESULT WINAPI IWiaDataTransfer_idtGetBandedData_Proxy(IWiaDataTransfer *This,PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,IWiaDataCallback *pIWiaDataCallback);
1018 HRESULT WINAPI IWiaDataTransfer_idtGetBandedData_Stub(IWiaDataTransfer *This,PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,IWiaDataCallback *pIWiaDataCallback);
1019 HRESULT WINAPI IWiaItem_DeviceDlg_Proxy(IWiaItem *This,HWND hwndParent,LONG lFlags,LONG lIntent,LONG *plItemCount,IWiaItem ***ppIWiaItem);
1020 HRESULT WINAPI IWiaItem_DeviceDlg_Stub(IWiaItem *This,HWND hwndParent,LONG lFlags,LONG lIntent,LONG *plItemCount,IWiaItem ***pIWiaItem);
1021 HRESULT WINAPI IWiaPropertyStorage_WriteMultiple_Proxy(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],const PROPVARIANT rgpropvar[],PROPID propidNameFirst);
1022 HRESULT WINAPI IWiaPropertyStorage_WriteMultiple_Stub(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC *rgpspec,const PROPVARIANT *rgpropvar,PROPID propidNameFirst);
1023 HRESULT WINAPI IWiaPropertyStorage_SetPropertyStream_Proxy(IWiaPropertyStorage *This,GUID *pCompatibilityId,IStream *pIStream);
1024 HRESULT WINAPI IWiaPropertyStorage_SetPropertyStream_Stub(IWiaPropertyStorage *This,GUID *pCompatibilityId,IStream *pIStream);
1025 HRESULT WINAPI IEnumWiaItem_Next_Proxy(IEnumWiaItem *This,ULONG celt,IWiaItem **ppIWiaItem,ULONG *pceltFetched);
1026 HRESULT WINAPI IEnumWiaItem_Next_Stub(IEnumWiaItem *This,ULONG celt,IWiaItem **ppIWiaItem,ULONG *pceltFetched);
1027 HRESULT WINAPI IEnumWIA_DEV_CAPS_Next_Proxy(IEnumWIA_DEV_CAPS *This,ULONG celt,WIA_DEV_CAP *rgelt,ULONG *pceltFetched);
1028 HRESULT WINAPI IEnumWIA_DEV_CAPS_Next_Stub(IEnumWIA_DEV_CAPS *This,ULONG celt,WIA_DEV_CAP *rgelt,ULONG *pceltFetched);
1029 HRESULT WINAPI IEnumWIA_FORMAT_INFO_Next_Proxy(IEnumWIA_FORMAT_INFO *This,ULONG celt,WIA_FORMAT_INFO *rgelt,ULONG *pceltFetched);
1030 HRESULT WINAPI IEnumWIA_FORMAT_INFO_Next_Stub(IEnumWIA_FORMAT_INFO *This,ULONG celt,WIA_FORMAT_INFO *rgelt,ULONG *pceltFetched);
1031
1032#ifdef __cplusplus
1033}
1034#endif
1035#endif28#endif
lib/libc/include/any-windows-any/wia_lh.h created+1821
...@@ -0,0 +1,1821 @@
1/*** Autogenerated by WIDL 10.0-rc1 from include/wia_lh.idl - Do not edit ***/
2
3#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__
5#define __REQUIRED_RPCNDR_H_VERSION__ 475
6#endif
7#include <rpc.h>
8#include <rpcndr.h>
9#endif
10
11#ifndef COM_NO_WINDOWS_H
12#include <windows.h>
13#include <ole2.h>
14#endif
15
16#ifndef __wia_lh_h__
17#define __wia_lh_h__
18
19/* Forward declarations */
20
21#ifndef __IWiaDevMgr_FWD_DEFINED__
22#define __IWiaDevMgr_FWD_DEFINED__
23typedef interface IWiaDevMgr IWiaDevMgr;
24#ifdef __cplusplus
25interface IWiaDevMgr;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__
30#define __IEnumWIA_DEV_INFO_FWD_DEFINED__
31typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
32#ifdef __cplusplus
33interface IEnumWIA_DEV_INFO;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IWiaPropertyStorage_FWD_DEFINED__
38#define __IWiaPropertyStorage_FWD_DEFINED__
39typedef interface IWiaPropertyStorage IWiaPropertyStorage;
40#ifdef __cplusplus
41interface IWiaPropertyStorage;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IWiaItem_FWD_DEFINED__
46#define __IWiaItem_FWD_DEFINED__
47typedef interface IWiaItem IWiaItem;
48#ifdef __cplusplus
49interface IWiaItem;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IWiaEventCallback_FWD_DEFINED__
54#define __IWiaEventCallback_FWD_DEFINED__
55typedef interface IWiaEventCallback IWiaEventCallback;
56#ifdef __cplusplus
57interface IWiaEventCallback;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IEnumWIA_DEV_CAPS_FWD_DEFINED__
62#define __IEnumWIA_DEV_CAPS_FWD_DEFINED__
63typedef interface IEnumWIA_DEV_CAPS IEnumWIA_DEV_CAPS;
64#ifdef __cplusplus
65interface IEnumWIA_DEV_CAPS;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IWiaTransferCallback_FWD_DEFINED__
70#define __IWiaTransferCallback_FWD_DEFINED__
71typedef interface IWiaTransferCallback IWiaTransferCallback;
72#ifdef __cplusplus
73interface IWiaTransferCallback;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IWiaPreview_FWD_DEFINED__
78#define __IWiaPreview_FWD_DEFINED__
79typedef interface IWiaPreview IWiaPreview;
80#ifdef __cplusplus
81interface IWiaPreview;
82#endif /* __cplusplus */
83#endif
84
85#ifndef __IEnumWiaItem2_FWD_DEFINED__
86#define __IEnumWiaItem2_FWD_DEFINED__
87typedef interface IEnumWiaItem2 IEnumWiaItem2;
88#ifdef __cplusplus
89interface IEnumWiaItem2;
90#endif /* __cplusplus */
91#endif
92
93#ifndef __IWiaItem2_FWD_DEFINED__
94#define __IWiaItem2_FWD_DEFINED__
95typedef interface IWiaItem2 IWiaItem2;
96#ifdef __cplusplus
97interface IWiaItem2;
98#endif /* __cplusplus */
99#endif
100
101#ifndef __IWiaDevMgr2_FWD_DEFINED__
102#define __IWiaDevMgr2_FWD_DEFINED__
103typedef interface IWiaDevMgr2 IWiaDevMgr2;
104#ifdef __cplusplus
105interface IWiaDevMgr2;
106#endif /* __cplusplus */
107#endif
108
109#ifndef __WiaDevMgr2_FWD_DEFINED__
110#define __WiaDevMgr2_FWD_DEFINED__
111#ifdef __cplusplus
112typedef class WiaDevMgr2 WiaDevMgr2;
113#else
114typedef struct WiaDevMgr2 WiaDevMgr2;
115#endif /* defined __cplusplus */
116#endif /* defined __WiaDevMgr2_FWD_DEFINED__ */
117
118/* Headers for imported files */
119
120#include <unknwn.h>
121#include <oaidl.h>
122#include <propidl.h>
123
124#ifdef __cplusplus
125extern "C" {
126#endif
127
128typedef struct _WIA_DITHER_PATTERN_DATA {
129 LONG lSize;
130 BSTR bstrPatternName;
131 LONG lPatternWidth;
132 LONG lPatternLength;
133 LONG cbPattern;
134 BYTE *pbPattern;
135} WIA_DITHER_PATTERN_DATA;
136typedef struct _WIA_DITHER_PATTERN_DATA *PWIA_DITHER_PATTERN_DATA;
137typedef struct _WIA_PROPID_TO_NAME {
138 PROPID propid;
139 LPOLESTR pszName;
140} WIA_PROPID_TO_NAME;
141typedef struct _WIA_PROPID_TO_NAME *PWIA_PROPID_TO_NAME;
142typedef struct _WIA_FORMAT_INFO {
143 GUID guidFormatID;
144 LONG lTymed;
145} WIA_FORMAT_INFO;
146typedef struct _WIA_FORMAT_INFO *PWIA_FORMAT_INFO;
147#include <wiadef.h>
148#ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__
149#define __IEnumWIA_DEV_INFO_FWD_DEFINED__
150typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
151#ifdef __cplusplus
152interface IEnumWIA_DEV_INFO;
153#endif /* __cplusplus */
154#endif
155
156#ifndef __IWiaPropertyStorage_FWD_DEFINED__
157#define __IWiaPropertyStorage_FWD_DEFINED__
158typedef interface IWiaPropertyStorage IWiaPropertyStorage;
159#ifdef __cplusplus
160interface IWiaPropertyStorage;
161#endif /* __cplusplus */
162#endif
163
164#ifndef __IWiaItem_FWD_DEFINED__
165#define __IWiaItem_FWD_DEFINED__
166typedef interface IWiaItem IWiaItem;
167#ifdef __cplusplus
168interface IWiaItem;
169#endif /* __cplusplus */
170#endif
171
172#ifndef __IWiaEventCallback_FWD_DEFINED__
173#define __IWiaEventCallback_FWD_DEFINED__
174typedef interface IWiaEventCallback IWiaEventCallback;
175#ifdef __cplusplus
176interface IWiaEventCallback;
177#endif /* __cplusplus */
178#endif
179
180#ifndef __IEnumWIA_DEV_CAPS_FWD_DEFINED__
181#define __IEnumWIA_DEV_CAPS_FWD_DEFINED__
182typedef interface IEnumWIA_DEV_CAPS IEnumWIA_DEV_CAPS;
183#ifdef __cplusplus
184interface IEnumWIA_DEV_CAPS;
185#endif /* __cplusplus */
186#endif
187
188#ifndef __IWiaTransferCallback_FWD_DEFINED__
189#define __IWiaTransferCallback_FWD_DEFINED__
190typedef interface IWiaTransferCallback IWiaTransferCallback;
191#ifdef __cplusplus
192interface IWiaTransferCallback;
193#endif /* __cplusplus */
194#endif
195
196#ifndef __IWiaPreview_FWD_DEFINED__
197#define __IWiaPreview_FWD_DEFINED__
198typedef interface IWiaPreview IWiaPreview;
199#ifdef __cplusplus
200interface IWiaPreview;
201#endif /* __cplusplus */
202#endif
203
204#ifndef __IEnumWiaItem2_FWD_DEFINED__
205#define __IEnumWiaItem2_FWD_DEFINED__
206typedef interface IEnumWiaItem2 IEnumWiaItem2;
207#ifdef __cplusplus
208interface IEnumWiaItem2;
209#endif /* __cplusplus */
210#endif
211
212#ifndef __IWiaItem2_FWD_DEFINED__
213#define __IWiaItem2_FWD_DEFINED__
214typedef interface IWiaItem2 IWiaItem2;
215#ifdef __cplusplus
216interface IWiaItem2;
217#endif /* __cplusplus */
218#endif
219
220#ifndef __IWiaDevMgr2_FWD_DEFINED__
221#define __IWiaDevMgr2_FWD_DEFINED__
222typedef interface IWiaDevMgr2 IWiaDevMgr2;
223#ifdef __cplusplus
224interface IWiaDevMgr2;
225#endif /* __cplusplus */
226#endif
227
228DEFINE_GUID(CLSID_WiaDevMgr, 0xa1f4e726,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11);
229/*****************************************************************************
230 * IWiaDevMgr interface
231 */
232#ifndef __IWiaDevMgr_INTERFACE_DEFINED__
233#define __IWiaDevMgr_INTERFACE_DEFINED__
234
235DEFINE_GUID(IID_IWiaDevMgr, 0x5eb2502a, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11);
236#if defined(__cplusplus) && !defined(CINTERFACE)
237MIDL_INTERFACE("5eb2502a-8cf1-11d1-bf92-0060081ed811")
238IWiaDevMgr : public IUnknown
239{
240 virtual HRESULT STDMETHODCALLTYPE EnumDeviceInfo(
241 LONG lFlag,
242 IEnumWIA_DEV_INFO **ppIEnum) = 0;
243
244 virtual HRESULT STDMETHODCALLTYPE CreateDevice(
245 BSTR bstrDeviceID,
246 IWiaItem **ppWiaItemRoot) = 0;
247
248 virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlg(
249 HWND hwndParent,
250 LONG lDeviceType,
251 LONG lFlags,
252 BSTR *pbstrDeviceID,
253 IWiaItem **ppItemRoot) = 0;
254
255 virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlgID(
256 HWND hwndParent,
257 LONG lDeviceType,
258 LONG lFlags,
259 BSTR *pbstrDeviceID) = 0;
260
261 virtual HRESULT STDMETHODCALLTYPE GetImageDlg(
262 HWND hwndParent,
263 LONG lDeviceType,
264 LONG lFlags,
265 LONG lIntent,
266 IWiaItem *pItemRoot,
267 BSTR bstrFilename,
268 GUID *pguidFormat) = 0;
269
270 virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackProgram(
271 LONG lFlags,
272 BSTR bstrDeviceID,
273 const GUID *pEventGUID,
274 BSTR bstrCommandline,
275 BSTR bstrName,
276 BSTR bstrDescription,
277 BSTR bstrIcon) = 0;
278
279 virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackInterface(
280 LONG lFlags,
281 BSTR bstrDeviceID,
282 const GUID *pEventGUID,
283 IWiaEventCallback *pIWiaEventCallback,
284 IUnknown **pEventObject) = 0;
285
286 virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackCLSID(
287 LONG lFlags,
288 BSTR bstrDeviceID,
289 const GUID *pEventGUID,
290 const GUID *pClsID,
291 BSTR bstrName,
292 BSTR bstrDescription,
293 BSTR bstrIcon) = 0;
294
295 virtual HRESULT STDMETHODCALLTYPE AddDeviceDlg(
296 HWND hwndParent,
297 LONG lFlags) = 0;
298
299};
300#ifdef __CRT_UUID_DECL
301__CRT_UUID_DECL(IWiaDevMgr, 0x5eb2502a, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11)
302#endif
303#else
304typedef struct IWiaDevMgrVtbl {
305 BEGIN_INTERFACE
306
307 /*** IUnknown methods ***/
308 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
309 IWiaDevMgr *This,
310 REFIID riid,
311 void **ppvObject);
312
313 ULONG (STDMETHODCALLTYPE *AddRef)(
314 IWiaDevMgr *This);
315
316 ULONG (STDMETHODCALLTYPE *Release)(
317 IWiaDevMgr *This);
318
319 /*** IWiaDevMgr methods ***/
320 HRESULT (STDMETHODCALLTYPE *EnumDeviceInfo)(
321 IWiaDevMgr *This,
322 LONG lFlag,
323 IEnumWIA_DEV_INFO **ppIEnum);
324
325 HRESULT (STDMETHODCALLTYPE *CreateDevice)(
326 IWiaDevMgr *This,
327 BSTR bstrDeviceID,
328 IWiaItem **ppWiaItemRoot);
329
330 HRESULT (STDMETHODCALLTYPE *SelectDeviceDlg)(
331 IWiaDevMgr *This,
332 HWND hwndParent,
333 LONG lDeviceType,
334 LONG lFlags,
335 BSTR *pbstrDeviceID,
336 IWiaItem **ppItemRoot);
337
338 HRESULT (STDMETHODCALLTYPE *SelectDeviceDlgID)(
339 IWiaDevMgr *This,
340 HWND hwndParent,
341 LONG lDeviceType,
342 LONG lFlags,
343 BSTR *pbstrDeviceID);
344
345 HRESULT (STDMETHODCALLTYPE *GetImageDlg)(
346 IWiaDevMgr *This,
347 HWND hwndParent,
348 LONG lDeviceType,
349 LONG lFlags,
350 LONG lIntent,
351 IWiaItem *pItemRoot,
352 BSTR bstrFilename,
353 GUID *pguidFormat);
354
355 HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackProgram)(
356 IWiaDevMgr *This,
357 LONG lFlags,
358 BSTR bstrDeviceID,
359 const GUID *pEventGUID,
360 BSTR bstrCommandline,
361 BSTR bstrName,
362 BSTR bstrDescription,
363 BSTR bstrIcon);
364
365 HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackInterface)(
366 IWiaDevMgr *This,
367 LONG lFlags,
368 BSTR bstrDeviceID,
369 const GUID *pEventGUID,
370 IWiaEventCallback *pIWiaEventCallback,
371 IUnknown **pEventObject);
372
373 HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackCLSID)(
374 IWiaDevMgr *This,
375 LONG lFlags,
376 BSTR bstrDeviceID,
377 const GUID *pEventGUID,
378 const GUID *pClsID,
379 BSTR bstrName,
380 BSTR bstrDescription,
381 BSTR bstrIcon);
382
383 HRESULT (STDMETHODCALLTYPE *AddDeviceDlg)(
384 IWiaDevMgr *This,
385 HWND hwndParent,
386 LONG lFlags);
387
388 END_INTERFACE
389} IWiaDevMgrVtbl;
390
391interface IWiaDevMgr {
392 CONST_VTBL IWiaDevMgrVtbl* lpVtbl;
393};
394
395#ifdef COBJMACROS
396#ifndef WIDL_C_INLINE_WRAPPERS
397/*** IUnknown methods ***/
398#define IWiaDevMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
399#define IWiaDevMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
400#define IWiaDevMgr_Release(This) (This)->lpVtbl->Release(This)
401/*** IWiaDevMgr methods ***/
402#define IWiaDevMgr_EnumDeviceInfo(This,lFlag,ppIEnum) (This)->lpVtbl->EnumDeviceInfo(This,lFlag,ppIEnum)
403#define IWiaDevMgr_CreateDevice(This,bstrDeviceID,ppWiaItemRoot) (This)->lpVtbl->CreateDevice(This,bstrDeviceID,ppWiaItemRoot)
404#define IWiaDevMgr_SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot) (This)->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot)
405#define IWiaDevMgr_SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID) (This)->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID)
406#define IWiaDevMgr_GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat) (This)->lpVtbl->GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat)
407#define IWiaDevMgr_RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon)
408#define IWiaDevMgr_RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject) (This)->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject)
409#define IWiaDevMgr_RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon)
410#define IWiaDevMgr_AddDeviceDlg(This,hwndParent,lFlags) (This)->lpVtbl->AddDeviceDlg(This,hwndParent,lFlags)
411#else
412/*** IUnknown methods ***/
413static inline HRESULT IWiaDevMgr_QueryInterface(IWiaDevMgr* This,REFIID riid,void **ppvObject) {
414 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
415}
416static inline ULONG IWiaDevMgr_AddRef(IWiaDevMgr* This) {
417 return This->lpVtbl->AddRef(This);
418}
419static inline ULONG IWiaDevMgr_Release(IWiaDevMgr* This) {
420 return This->lpVtbl->Release(This);
421}
422/*** IWiaDevMgr methods ***/
423static inline HRESULT IWiaDevMgr_EnumDeviceInfo(IWiaDevMgr* This,LONG lFlag,IEnumWIA_DEV_INFO **ppIEnum) {
424 return This->lpVtbl->EnumDeviceInfo(This,lFlag,ppIEnum);
425}
426static inline HRESULT IWiaDevMgr_CreateDevice(IWiaDevMgr* This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot) {
427 return This->lpVtbl->CreateDevice(This,bstrDeviceID,ppWiaItemRoot);
428}
429static inline HRESULT IWiaDevMgr_SelectDeviceDlg(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot) {
430 return This->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot);
431}
432static inline HRESULT IWiaDevMgr_SelectDeviceDlgID(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID) {
433 return This->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID);
434}
435static inline HRESULT IWiaDevMgr_GetImageDlg(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat) {
436 return This->lpVtbl->GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat);
437}
438static inline HRESULT IWiaDevMgr_RegisterEventCallbackProgram(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
439 return This->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon);
440}
441static inline HRESULT IWiaDevMgr_RegisterEventCallbackInterface(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject) {
442 return This->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject);
443}
444static inline HRESULT IWiaDevMgr_RegisterEventCallbackCLSID(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
445 return This->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon);
446}
447static inline HRESULT IWiaDevMgr_AddDeviceDlg(IWiaDevMgr* This,HWND hwndParent,LONG lFlags) {
448 return This->lpVtbl->AddDeviceDlg(This,hwndParent,lFlags);
449}
450#endif
451#endif
452
453#endif
454
455
456#endif /* __IWiaDevMgr_INTERFACE_DEFINED__ */
457
458/*****************************************************************************
459 * IEnumWIA_DEV_INFO interface
460 */
461#ifndef __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
462#define __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
463
464DEFINE_GUID(IID_IEnumWIA_DEV_INFO, 0x5e38b83c, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11);
465#if defined(__cplusplus) && !defined(CINTERFACE)
466MIDL_INTERFACE("5e38b83c-8cf1-11d1-bf92-0060081ed811")
467IEnumWIA_DEV_INFO : public IUnknown
468{
469 virtual HRESULT STDMETHODCALLTYPE Next(
470 ULONG celt,
471 IWiaPropertyStorage **rgelt,
472 ULONG *pceltFetched) = 0;
473
474 virtual HRESULT STDMETHODCALLTYPE Skip(
475 ULONG celt) = 0;
476
477 virtual HRESULT STDMETHODCALLTYPE Reset(
478 ) = 0;
479
480 virtual HRESULT STDMETHODCALLTYPE Clone(
481 IEnumWIA_DEV_INFO **ppIEnum) = 0;
482
483 virtual HRESULT STDMETHODCALLTYPE GetCount(
484 ULONG *celt) = 0;
485
486};
487#ifdef __CRT_UUID_DECL
488__CRT_UUID_DECL(IEnumWIA_DEV_INFO, 0x5e38b83c, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11)
489#endif
490#else
491typedef struct IEnumWIA_DEV_INFOVtbl {
492 BEGIN_INTERFACE
493
494 /*** IUnknown methods ***/
495 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
496 IEnumWIA_DEV_INFO *This,
497 REFIID riid,
498 void **ppvObject);
499
500 ULONG (STDMETHODCALLTYPE *AddRef)(
501 IEnumWIA_DEV_INFO *This);
502
503 ULONG (STDMETHODCALLTYPE *Release)(
504 IEnumWIA_DEV_INFO *This);
505
506 /*** IEnumWIA_DEV_INFO methods ***/
507 HRESULT (STDMETHODCALLTYPE *Next)(
508 IEnumWIA_DEV_INFO *This,
509 ULONG celt,
510 IWiaPropertyStorage **rgelt,
511 ULONG *pceltFetched);
512
513 HRESULT (STDMETHODCALLTYPE *Skip)(
514 IEnumWIA_DEV_INFO *This,
515 ULONG celt);
516
517 HRESULT (STDMETHODCALLTYPE *Reset)(
518 IEnumWIA_DEV_INFO *This);
519
520 HRESULT (STDMETHODCALLTYPE *Clone)(
521 IEnumWIA_DEV_INFO *This,
522 IEnumWIA_DEV_INFO **ppIEnum);
523
524 HRESULT (STDMETHODCALLTYPE *GetCount)(
525 IEnumWIA_DEV_INFO *This,
526 ULONG *celt);
527
528 END_INTERFACE
529} IEnumWIA_DEV_INFOVtbl;
530
531interface IEnumWIA_DEV_INFO {
532 CONST_VTBL IEnumWIA_DEV_INFOVtbl* lpVtbl;
533};
534
535#ifdef COBJMACROS
536#ifndef WIDL_C_INLINE_WRAPPERS
537/*** IUnknown methods ***/
538#define IEnumWIA_DEV_INFO_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
539#define IEnumWIA_DEV_INFO_AddRef(This) (This)->lpVtbl->AddRef(This)
540#define IEnumWIA_DEV_INFO_Release(This) (This)->lpVtbl->Release(This)
541/*** IEnumWIA_DEV_INFO methods ***/
542#define IEnumWIA_DEV_INFO_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
543#define IEnumWIA_DEV_INFO_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
544#define IEnumWIA_DEV_INFO_Reset(This) (This)->lpVtbl->Reset(This)
545#define IEnumWIA_DEV_INFO_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
546#define IEnumWIA_DEV_INFO_GetCount(This,celt) (This)->lpVtbl->GetCount(This,celt)
547#else
548/*** IUnknown methods ***/
549static inline HRESULT IEnumWIA_DEV_INFO_QueryInterface(IEnumWIA_DEV_INFO* This,REFIID riid,void **ppvObject) {
550 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
551}
552static inline ULONG IEnumWIA_DEV_INFO_AddRef(IEnumWIA_DEV_INFO* This) {
553 return This->lpVtbl->AddRef(This);
554}
555static inline ULONG IEnumWIA_DEV_INFO_Release(IEnumWIA_DEV_INFO* This) {
556 return This->lpVtbl->Release(This);
557}
558/*** IEnumWIA_DEV_INFO methods ***/
559static inline HRESULT IEnumWIA_DEV_INFO_Next(IEnumWIA_DEV_INFO* This,ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched) {
560 return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
561}
562static inline HRESULT IEnumWIA_DEV_INFO_Skip(IEnumWIA_DEV_INFO* This,ULONG celt) {
563 return This->lpVtbl->Skip(This,celt);
564}
565static inline HRESULT IEnumWIA_DEV_INFO_Reset(IEnumWIA_DEV_INFO* This) {
566 return This->lpVtbl->Reset(This);
567}
568static inline HRESULT IEnumWIA_DEV_INFO_Clone(IEnumWIA_DEV_INFO* This,IEnumWIA_DEV_INFO **ppIEnum) {
569 return This->lpVtbl->Clone(This,ppIEnum);
570}
571static inline HRESULT IEnumWIA_DEV_INFO_GetCount(IEnumWIA_DEV_INFO* This,ULONG *celt) {
572 return This->lpVtbl->GetCount(This,celt);
573}
574#endif
575#endif
576
577#endif
578
579
580#endif /* __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__ */
581
582/*****************************************************************************
583 * IWiaPropertyStorage interface
584 */
585#ifndef __IWiaPropertyStorage_INTERFACE_DEFINED__
586#define __IWiaPropertyStorage_INTERFACE_DEFINED__
587
588DEFINE_GUID(IID_IWiaPropertyStorage, 0x98b5e8a0, 0x29cc, 0x491a, 0xaa,0xc0, 0xe6,0xdb,0x4f,0xdc,0xce,0xb6);
589#if defined(__cplusplus) && !defined(CINTERFACE)
590MIDL_INTERFACE("98b5e8a0-29cc-491a-aac0-e6db4fdcceb6")
591IWiaPropertyStorage : public IUnknown
592{
593};
594#ifdef __CRT_UUID_DECL
595__CRT_UUID_DECL(IWiaPropertyStorage, 0x98b5e8a0, 0x29cc, 0x491a, 0xaa,0xc0, 0xe6,0xdb,0x4f,0xdc,0xce,0xb6)
596#endif
597#else
598typedef struct IWiaPropertyStorageVtbl {
599 BEGIN_INTERFACE
600
601 /*** IUnknown methods ***/
602 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
603 IWiaPropertyStorage *This,
604 REFIID riid,
605 void **ppvObject);
606
607 ULONG (STDMETHODCALLTYPE *AddRef)(
608 IWiaPropertyStorage *This);
609
610 ULONG (STDMETHODCALLTYPE *Release)(
611 IWiaPropertyStorage *This);
612
613 END_INTERFACE
614} IWiaPropertyStorageVtbl;
615
616interface IWiaPropertyStorage {
617 CONST_VTBL IWiaPropertyStorageVtbl* lpVtbl;
618};
619
620#ifdef COBJMACROS
621#ifndef WIDL_C_INLINE_WRAPPERS
622/*** IUnknown methods ***/
623#define IWiaPropertyStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
624#define IWiaPropertyStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
625#define IWiaPropertyStorage_Release(This) (This)->lpVtbl->Release(This)
626#else
627/*** IUnknown methods ***/
628static inline HRESULT IWiaPropertyStorage_QueryInterface(IWiaPropertyStorage* This,REFIID riid,void **ppvObject) {
629 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
630}
631static inline ULONG IWiaPropertyStorage_AddRef(IWiaPropertyStorage* This) {
632 return This->lpVtbl->AddRef(This);
633}
634static inline ULONG IWiaPropertyStorage_Release(IWiaPropertyStorage* This) {
635 return This->lpVtbl->Release(This);
636}
637#endif
638#endif
639
640#endif
641
642
643#endif /* __IWiaPropertyStorage_INTERFACE_DEFINED__ */
644
645/*****************************************************************************
646 * IWiaItem interface
647 */
648#ifndef __IWiaItem_INTERFACE_DEFINED__
649#define __IWiaItem_INTERFACE_DEFINED__
650
651DEFINE_GUID(IID_IWiaItem, 0x4db1ad10, 0x3391, 0x11d2, 0x9a,0x33, 0x00,0xc0,0x4f,0xa3,0x61,0x45);
652#if defined(__cplusplus) && !defined(CINTERFACE)
653MIDL_INTERFACE("4db1ad10-3391-11d2-9a33-00c04fa36145")
654IWiaItem : public IUnknown
655{
656};
657#ifdef __CRT_UUID_DECL
658__CRT_UUID_DECL(IWiaItem, 0x4db1ad10, 0x3391, 0x11d2, 0x9a,0x33, 0x00,0xc0,0x4f,0xa3,0x61,0x45)
659#endif
660#else
661typedef struct IWiaItemVtbl {
662 BEGIN_INTERFACE
663
664 /*** IUnknown methods ***/
665 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
666 IWiaItem *This,
667 REFIID riid,
668 void **ppvObject);
669
670 ULONG (STDMETHODCALLTYPE *AddRef)(
671 IWiaItem *This);
672
673 ULONG (STDMETHODCALLTYPE *Release)(
674 IWiaItem *This);
675
676 END_INTERFACE
677} IWiaItemVtbl;
678
679interface IWiaItem {
680 CONST_VTBL IWiaItemVtbl* lpVtbl;
681};
682
683#ifdef COBJMACROS
684#ifndef WIDL_C_INLINE_WRAPPERS
685/*** IUnknown methods ***/
686#define IWiaItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
687#define IWiaItem_AddRef(This) (This)->lpVtbl->AddRef(This)
688#define IWiaItem_Release(This) (This)->lpVtbl->Release(This)
689#else
690/*** IUnknown methods ***/
691static inline HRESULT IWiaItem_QueryInterface(IWiaItem* This,REFIID riid,void **ppvObject) {
692 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
693}
694static inline ULONG IWiaItem_AddRef(IWiaItem* This) {
695 return This->lpVtbl->AddRef(This);
696}
697static inline ULONG IWiaItem_Release(IWiaItem* This) {
698 return This->lpVtbl->Release(This);
699}
700#endif
701#endif
702
703#endif
704
705
706#endif /* __IWiaItem_INTERFACE_DEFINED__ */
707
708/*****************************************************************************
709 * IWiaEventCallback interface
710 */
711#ifndef __IWiaEventCallback_INTERFACE_DEFINED__
712#define __IWiaEventCallback_INTERFACE_DEFINED__
713
714DEFINE_GUID(IID_IWiaEventCallback, 0xae6287b0, 0x0084, 0x11d2, 0x97,0x3b, 0x00,0xa0,0xc9,0x06,0x8f,0x2e);
715#if defined(__cplusplus) && !defined(CINTERFACE)
716MIDL_INTERFACE("ae6287b0-0084-11d2-973b-00a0c9068f2e")
717IWiaEventCallback : public IUnknown
718{
719 virtual HRESULT STDMETHODCALLTYPE ImageEventCallback(
720 const GUID *pEventGUID,
721 BSTR bstrEventDescription,
722 BSTR bstrDeviceID,
723 BSTR bstrDeviceDescription,
724 DWORD dwDeviceType,
725 BSTR bstrFullItemName,
726 ULONG *pulEventType,
727 ULONG ulReserved) = 0;
728
729};
730#ifdef __CRT_UUID_DECL
731__CRT_UUID_DECL(IWiaEventCallback, 0xae6287b0, 0x0084, 0x11d2, 0x97,0x3b, 0x00,0xa0,0xc9,0x06,0x8f,0x2e)
732#endif
733#else
734typedef struct IWiaEventCallbackVtbl {
735 BEGIN_INTERFACE
736
737 /*** IUnknown methods ***/
738 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
739 IWiaEventCallback *This,
740 REFIID riid,
741 void **ppvObject);
742
743 ULONG (STDMETHODCALLTYPE *AddRef)(
744 IWiaEventCallback *This);
745
746 ULONG (STDMETHODCALLTYPE *Release)(
747 IWiaEventCallback *This);
748
749 /*** IWiaEventCallback methods ***/
750 HRESULT (STDMETHODCALLTYPE *ImageEventCallback)(
751 IWiaEventCallback *This,
752 const GUID *pEventGUID,
753 BSTR bstrEventDescription,
754 BSTR bstrDeviceID,
755 BSTR bstrDeviceDescription,
756 DWORD dwDeviceType,
757 BSTR bstrFullItemName,
758 ULONG *pulEventType,
759 ULONG ulReserved);
760
761 END_INTERFACE
762} IWiaEventCallbackVtbl;
763
764interface IWiaEventCallback {
765 CONST_VTBL IWiaEventCallbackVtbl* lpVtbl;
766};
767
768#ifdef COBJMACROS
769#ifndef WIDL_C_INLINE_WRAPPERS
770/*** IUnknown methods ***/
771#define IWiaEventCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
772#define IWiaEventCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
773#define IWiaEventCallback_Release(This) (This)->lpVtbl->Release(This)
774/*** IWiaEventCallback methods ***/
775#define IWiaEventCallback_ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved) (This)->lpVtbl->ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved)
776#else
777/*** IUnknown methods ***/
778static inline HRESULT IWiaEventCallback_QueryInterface(IWiaEventCallback* This,REFIID riid,void **ppvObject) {
779 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
780}
781static inline ULONG IWiaEventCallback_AddRef(IWiaEventCallback* This) {
782 return This->lpVtbl->AddRef(This);
783}
784static inline ULONG IWiaEventCallback_Release(IWiaEventCallback* This) {
785 return This->lpVtbl->Release(This);
786}
787/*** IWiaEventCallback methods ***/
788static inline HRESULT IWiaEventCallback_ImageEventCallback(IWiaEventCallback* This,const GUID *pEventGUID,BSTR bstrEventDescription,BSTR bstrDeviceID,BSTR bstrDeviceDescription,DWORD dwDeviceType,BSTR bstrFullItemName,ULONG *pulEventType,ULONG ulReserved) {
789 return This->lpVtbl->ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved);
790}
791#endif
792#endif
793
794#endif
795
796
797#endif /* __IWiaEventCallback_INTERFACE_DEFINED__ */
798
799typedef struct _WIA_DEV_CAP {
800 GUID guid;
801 ULONG ulFlags;
802 BSTR bstrName;
803 BSTR bstrDescription;
804 BSTR bstrIcon;
805 BSTR bstrCommandline;
806} WIA_DEV_CAP;
807typedef struct _WIA_DEV_CAP *PWIA_DEV_CAP;
808typedef struct _WIA_DEV_CAP WIA_EVENT_HANDLER;
809typedef struct _WIA_DEV_CAP *PWIA_EVENT_HANDLER;
810/*****************************************************************************
811 * IEnumWIA_DEV_CAPS interface
812 */
813#ifndef __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__
814#define __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__
815
816DEFINE_GUID(IID_IEnumWIA_DEV_CAPS, 0x1fcc4287, 0xaca6, 0x11d2, 0xa0,0x93, 0x00,0xc0,0x4f,0x72,0xdc,0x3c);
817#if defined(__cplusplus) && !defined(CINTERFACE)
818MIDL_INTERFACE("1fcc4287-aca6-11d2-a093-00c04f72dc3c")
819IEnumWIA_DEV_CAPS : public IUnknown
820{
821 virtual HRESULT STDMETHODCALLTYPE Next(
822 ULONG celt,
823 WIA_DEV_CAP *rgelt,
824 ULONG *pceltFetched) = 0;
825
826 virtual HRESULT STDMETHODCALLTYPE Skip(
827 ULONG celt) = 0;
828
829 virtual HRESULT STDMETHODCALLTYPE Reset(
830 ) = 0;
831
832 virtual HRESULT STDMETHODCALLTYPE Clone(
833 IEnumWIA_DEV_CAPS **ppIEnum) = 0;
834
835 virtual HRESULT STDMETHODCALLTYPE GetCount(
836 ULONG *pcelt) = 0;
837
838};
839#ifdef __CRT_UUID_DECL
840__CRT_UUID_DECL(IEnumWIA_DEV_CAPS, 0x1fcc4287, 0xaca6, 0x11d2, 0xa0,0x93, 0x00,0xc0,0x4f,0x72,0xdc,0x3c)
841#endif
842#else
843typedef struct IEnumWIA_DEV_CAPSVtbl {
844 BEGIN_INTERFACE
845
846 /*** IUnknown methods ***/
847 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
848 IEnumWIA_DEV_CAPS *This,
849 REFIID riid,
850 void **ppvObject);
851
852 ULONG (STDMETHODCALLTYPE *AddRef)(
853 IEnumWIA_DEV_CAPS *This);
854
855 ULONG (STDMETHODCALLTYPE *Release)(
856 IEnumWIA_DEV_CAPS *This);
857
858 /*** IEnumWIA_DEV_CAPS methods ***/
859 HRESULT (STDMETHODCALLTYPE *Next)(
860 IEnumWIA_DEV_CAPS *This,
861 ULONG celt,
862 WIA_DEV_CAP *rgelt,
863 ULONG *pceltFetched);
864
865 HRESULT (STDMETHODCALLTYPE *Skip)(
866 IEnumWIA_DEV_CAPS *This,
867 ULONG celt);
868
869 HRESULT (STDMETHODCALLTYPE *Reset)(
870 IEnumWIA_DEV_CAPS *This);
871
872 HRESULT (STDMETHODCALLTYPE *Clone)(
873 IEnumWIA_DEV_CAPS *This,
874 IEnumWIA_DEV_CAPS **ppIEnum);
875
876 HRESULT (STDMETHODCALLTYPE *GetCount)(
877 IEnumWIA_DEV_CAPS *This,
878 ULONG *pcelt);
879
880 END_INTERFACE
881} IEnumWIA_DEV_CAPSVtbl;
882
883interface IEnumWIA_DEV_CAPS {
884 CONST_VTBL IEnumWIA_DEV_CAPSVtbl* lpVtbl;
885};
886
887#ifdef COBJMACROS
888#ifndef WIDL_C_INLINE_WRAPPERS
889/*** IUnknown methods ***/
890#define IEnumWIA_DEV_CAPS_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
891#define IEnumWIA_DEV_CAPS_AddRef(This) (This)->lpVtbl->AddRef(This)
892#define IEnumWIA_DEV_CAPS_Release(This) (This)->lpVtbl->Release(This)
893/*** IEnumWIA_DEV_CAPS methods ***/
894#define IEnumWIA_DEV_CAPS_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
895#define IEnumWIA_DEV_CAPS_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
896#define IEnumWIA_DEV_CAPS_Reset(This) (This)->lpVtbl->Reset(This)
897#define IEnumWIA_DEV_CAPS_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
898#define IEnumWIA_DEV_CAPS_GetCount(This,pcelt) (This)->lpVtbl->GetCount(This,pcelt)
899#else
900/*** IUnknown methods ***/
901static inline HRESULT IEnumWIA_DEV_CAPS_QueryInterface(IEnumWIA_DEV_CAPS* This,REFIID riid,void **ppvObject) {
902 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
903}
904static inline ULONG IEnumWIA_DEV_CAPS_AddRef(IEnumWIA_DEV_CAPS* This) {
905 return This->lpVtbl->AddRef(This);
906}
907static inline ULONG IEnumWIA_DEV_CAPS_Release(IEnumWIA_DEV_CAPS* This) {
908 return This->lpVtbl->Release(This);
909}
910/*** IEnumWIA_DEV_CAPS methods ***/
911static inline HRESULT IEnumWIA_DEV_CAPS_Next(IEnumWIA_DEV_CAPS* This,ULONG celt,WIA_DEV_CAP *rgelt,ULONG *pceltFetched) {
912 return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
913}
914static inline HRESULT IEnumWIA_DEV_CAPS_Skip(IEnumWIA_DEV_CAPS* This,ULONG celt) {
915 return This->lpVtbl->Skip(This,celt);
916}
917static inline HRESULT IEnumWIA_DEV_CAPS_Reset(IEnumWIA_DEV_CAPS* This) {
918 return This->lpVtbl->Reset(This);
919}
920static inline HRESULT IEnumWIA_DEV_CAPS_Clone(IEnumWIA_DEV_CAPS* This,IEnumWIA_DEV_CAPS **ppIEnum) {
921 return This->lpVtbl->Clone(This,ppIEnum);
922}
923static inline HRESULT IEnumWIA_DEV_CAPS_GetCount(IEnumWIA_DEV_CAPS* This,ULONG *pcelt) {
924 return This->lpVtbl->GetCount(This,pcelt);
925}
926#endif
927#endif
928
929#endif
930
931
932#endif /* __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__ */
933
934typedef struct _WiaTransferParams {
935 LONG lMessage;
936 LONG lPercentComplete;
937 ULONG64 ulTransferredBytes;
938 HRESULT hrErrorStatus;
939} WiaTransferParams;
940/*****************************************************************************
941 * IWiaTransferCallback interface
942 */
943#ifndef __IWiaTransferCallback_INTERFACE_DEFINED__
944#define __IWiaTransferCallback_INTERFACE_DEFINED__
945
946DEFINE_GUID(IID_IWiaTransferCallback, 0x27d4eaaf, 0x28a6, 0x4ca5, 0x9a,0xab, 0xe6,0x78,0x16,0x8b,0x95,0x27);
947#if defined(__cplusplus) && !defined(CINTERFACE)
948MIDL_INTERFACE("27d4eaaf-28a6-4ca5-9aab-e678168b9527")
949IWiaTransferCallback : public IUnknown
950{
951 virtual HRESULT STDMETHODCALLTYPE TransferCallback(
952 LONG lFlags,
953 WiaTransferParams *pWiaTransferParams) = 0;
954
955 virtual HRESULT STDMETHODCALLTYPE GetNextStream(
956 LONG lFlags,
957 BSTR bstrItemName,
958 BSTR bstrFullItemName,
959 IStream **ppDestination) = 0;
960
961};
962#ifdef __CRT_UUID_DECL
963__CRT_UUID_DECL(IWiaTransferCallback, 0x27d4eaaf, 0x28a6, 0x4ca5, 0x9a,0xab, 0xe6,0x78,0x16,0x8b,0x95,0x27)
964#endif
965#else
966typedef struct IWiaTransferCallbackVtbl {
967 BEGIN_INTERFACE
968
969 /*** IUnknown methods ***/
970 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
971 IWiaTransferCallback *This,
972 REFIID riid,
973 void **ppvObject);
974
975 ULONG (STDMETHODCALLTYPE *AddRef)(
976 IWiaTransferCallback *This);
977
978 ULONG (STDMETHODCALLTYPE *Release)(
979 IWiaTransferCallback *This);
980
981 /*** IWiaTransferCallback methods ***/
982 HRESULT (STDMETHODCALLTYPE *TransferCallback)(
983 IWiaTransferCallback *This,
984 LONG lFlags,
985 WiaTransferParams *pWiaTransferParams);
986
987 HRESULT (STDMETHODCALLTYPE *GetNextStream)(
988 IWiaTransferCallback *This,
989 LONG lFlags,
990 BSTR bstrItemName,
991 BSTR bstrFullItemName,
992 IStream **ppDestination);
993
994 END_INTERFACE
995} IWiaTransferCallbackVtbl;
996
997interface IWiaTransferCallback {
998 CONST_VTBL IWiaTransferCallbackVtbl* lpVtbl;
999};
1000
1001#ifdef COBJMACROS
1002#ifndef WIDL_C_INLINE_WRAPPERS
1003/*** IUnknown methods ***/
1004#define IWiaTransferCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1005#define IWiaTransferCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
1006#define IWiaTransferCallback_Release(This) (This)->lpVtbl->Release(This)
1007/*** IWiaTransferCallback methods ***/
1008#define IWiaTransferCallback_TransferCallback(This,lFlags,pWiaTransferParams) (This)->lpVtbl->TransferCallback(This,lFlags,pWiaTransferParams)
1009#define IWiaTransferCallback_GetNextStream(This,lFlags,bstrItemName,bstrFullItemName,ppDestination) (This)->lpVtbl->GetNextStream(This,lFlags,bstrItemName,bstrFullItemName,ppDestination)
1010#else
1011/*** IUnknown methods ***/
1012static inline HRESULT IWiaTransferCallback_QueryInterface(IWiaTransferCallback* This,REFIID riid,void **ppvObject) {
1013 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1014}
1015static inline ULONG IWiaTransferCallback_AddRef(IWiaTransferCallback* This) {
1016 return This->lpVtbl->AddRef(This);
1017}
1018static inline ULONG IWiaTransferCallback_Release(IWiaTransferCallback* This) {
1019 return This->lpVtbl->Release(This);
1020}
1021/*** IWiaTransferCallback methods ***/
1022static inline HRESULT IWiaTransferCallback_TransferCallback(IWiaTransferCallback* This,LONG lFlags,WiaTransferParams *pWiaTransferParams) {
1023 return This->lpVtbl->TransferCallback(This,lFlags,pWiaTransferParams);
1024}
1025static inline HRESULT IWiaTransferCallback_GetNextStream(IWiaTransferCallback* This,LONG lFlags,BSTR bstrItemName,BSTR bstrFullItemName,IStream **ppDestination) {
1026 return This->lpVtbl->GetNextStream(This,lFlags,bstrItemName,bstrFullItemName,ppDestination);
1027}
1028#endif
1029#endif
1030
1031#endif
1032
1033
1034#endif /* __IWiaTransferCallback_INTERFACE_DEFINED__ */
1035
1036/*****************************************************************************
1037 * IWiaPreview interface
1038 */
1039#ifndef __IWiaPreview_INTERFACE_DEFINED__
1040#define __IWiaPreview_INTERFACE_DEFINED__
1041
1042DEFINE_GUID(IID_IWiaPreview, 0x95c2b4fd, 0x33f2, 0x4d86, 0xad,0x40, 0x94,0x31,0xf0,0xdf,0x08,0xf7);
1043#if defined(__cplusplus) && !defined(CINTERFACE)
1044MIDL_INTERFACE("95c2b4fd-33f2-4d86-ad40-9431f0df08f7")
1045IWiaPreview : public IUnknown
1046{
1047 virtual HRESULT STDMETHODCALLTYPE GetNewPreview(
1048 LONG lFlags,
1049 IWiaItem2 *pWiaItem2,
1050 IWiaTransferCallback *pWiaTransferCallback) = 0;
1051
1052 virtual HRESULT STDMETHODCALLTYPE UpdatePreview(
1053 LONG lFlags,
1054 IWiaItem2 *pChildWiaItem2,
1055 IWiaTransferCallback *pWiaTransferCallback) = 0;
1056
1057 virtual HRESULT STDMETHODCALLTYPE DetectRegions(
1058 LONG lFlags) = 0;
1059
1060 virtual HRESULT STDMETHODCALLTYPE Clear(
1061 ) = 0;
1062
1063};
1064#ifdef __CRT_UUID_DECL
1065__CRT_UUID_DECL(IWiaPreview, 0x95c2b4fd, 0x33f2, 0x4d86, 0xad,0x40, 0x94,0x31,0xf0,0xdf,0x08,0xf7)
1066#endif
1067#else
1068typedef struct IWiaPreviewVtbl {
1069 BEGIN_INTERFACE
1070
1071 /*** IUnknown methods ***/
1072 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1073 IWiaPreview *This,
1074 REFIID riid,
1075 void **ppvObject);
1076
1077 ULONG (STDMETHODCALLTYPE *AddRef)(
1078 IWiaPreview *This);
1079
1080 ULONG (STDMETHODCALLTYPE *Release)(
1081 IWiaPreview *This);
1082
1083 /*** IWiaPreview methods ***/
1084 HRESULT (STDMETHODCALLTYPE *GetNewPreview)(
1085 IWiaPreview *This,
1086 LONG lFlags,
1087 IWiaItem2 *pWiaItem2,
1088 IWiaTransferCallback *pWiaTransferCallback);
1089
1090 HRESULT (STDMETHODCALLTYPE *UpdatePreview)(
1091 IWiaPreview *This,
1092 LONG lFlags,
1093 IWiaItem2 *pChildWiaItem2,
1094 IWiaTransferCallback *pWiaTransferCallback);
1095
1096 HRESULT (STDMETHODCALLTYPE *DetectRegions)(
1097 IWiaPreview *This,
1098 LONG lFlags);
1099
1100 HRESULT (STDMETHODCALLTYPE *Clear)(
1101 IWiaPreview *This);
1102
1103 END_INTERFACE
1104} IWiaPreviewVtbl;
1105
1106interface IWiaPreview {
1107 CONST_VTBL IWiaPreviewVtbl* lpVtbl;
1108};
1109
1110#ifdef COBJMACROS
1111#ifndef WIDL_C_INLINE_WRAPPERS
1112/*** IUnknown methods ***/
1113#define IWiaPreview_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1114#define IWiaPreview_AddRef(This) (This)->lpVtbl->AddRef(This)
1115#define IWiaPreview_Release(This) (This)->lpVtbl->Release(This)
1116/*** IWiaPreview methods ***/
1117#define IWiaPreview_GetNewPreview(This,lFlags,pWiaItem2,pWiaTransferCallback) (This)->lpVtbl->GetNewPreview(This,lFlags,pWiaItem2,pWiaTransferCallback)
1118#define IWiaPreview_UpdatePreview(This,lFlags,pChildWiaItem2,pWiaTransferCallback) (This)->lpVtbl->UpdatePreview(This,lFlags,pChildWiaItem2,pWiaTransferCallback)
1119#define IWiaPreview_DetectRegions(This,lFlags) (This)->lpVtbl->DetectRegions(This,lFlags)
1120#define IWiaPreview_Clear(This) (This)->lpVtbl->Clear(This)
1121#else
1122/*** IUnknown methods ***/
1123static inline HRESULT IWiaPreview_QueryInterface(IWiaPreview* This,REFIID riid,void **ppvObject) {
1124 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1125}
1126static inline ULONG IWiaPreview_AddRef(IWiaPreview* This) {
1127 return This->lpVtbl->AddRef(This);
1128}
1129static inline ULONG IWiaPreview_Release(IWiaPreview* This) {
1130 return This->lpVtbl->Release(This);
1131}
1132/*** IWiaPreview methods ***/
1133static inline HRESULT IWiaPreview_GetNewPreview(IWiaPreview* This,LONG lFlags,IWiaItem2 *pWiaItem2,IWiaTransferCallback *pWiaTransferCallback) {
1134 return This->lpVtbl->GetNewPreview(This,lFlags,pWiaItem2,pWiaTransferCallback);
1135}
1136static inline HRESULT IWiaPreview_UpdatePreview(IWiaPreview* This,LONG lFlags,IWiaItem2 *pChildWiaItem2,IWiaTransferCallback *pWiaTransferCallback) {
1137 return This->lpVtbl->UpdatePreview(This,lFlags,pChildWiaItem2,pWiaTransferCallback);
1138}
1139static inline HRESULT IWiaPreview_DetectRegions(IWiaPreview* This,LONG lFlags) {
1140 return This->lpVtbl->DetectRegions(This,lFlags);
1141}
1142static inline HRESULT IWiaPreview_Clear(IWiaPreview* This) {
1143 return This->lpVtbl->Clear(This);
1144}
1145#endif
1146#endif
1147
1148#endif
1149
1150
1151#endif /* __IWiaPreview_INTERFACE_DEFINED__ */
1152
1153/*****************************************************************************
1154 * IEnumWiaItem2 interface
1155 */
1156#ifndef __IEnumWiaItem2_INTERFACE_DEFINED__
1157#define __IEnumWiaItem2_INTERFACE_DEFINED__
1158
1159DEFINE_GUID(IID_IEnumWiaItem2, 0x59970af4, 0xcd0d, 0x44d9, 0xab,0x24, 0x52,0x29,0x56,0x30,0xe5,0x82);
1160#if defined(__cplusplus) && !defined(CINTERFACE)
1161MIDL_INTERFACE("59970af4-cd0d-44d9-ab24-52295630e582")
1162IEnumWiaItem2 : public IUnknown
1163{
1164 virtual HRESULT STDMETHODCALLTYPE Next(
1165 ULONG cElt,
1166 IWiaItem2 **ppIWiaItem2,
1167 ULONG *pcEltFetched) = 0;
1168
1169 virtual HRESULT STDMETHODCALLTYPE Skip(
1170 ULONG cElt) = 0;
1171
1172 virtual HRESULT STDMETHODCALLTYPE Reset(
1173 ) = 0;
1174
1175 virtual HRESULT STDMETHODCALLTYPE Clone(
1176 IEnumWiaItem2 **ppIEnum) = 0;
1177
1178 virtual HRESULT STDMETHODCALLTYPE GetCount(
1179 ULONG *cElt) = 0;
1180
1181};
1182#ifdef __CRT_UUID_DECL
1183__CRT_UUID_DECL(IEnumWiaItem2, 0x59970af4, 0xcd0d, 0x44d9, 0xab,0x24, 0x52,0x29,0x56,0x30,0xe5,0x82)
1184#endif
1185#else
1186typedef struct IEnumWiaItem2Vtbl {
1187 BEGIN_INTERFACE
1188
1189 /*** IUnknown methods ***/
1190 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1191 IEnumWiaItem2 *This,
1192 REFIID riid,
1193 void **ppvObject);
1194
1195 ULONG (STDMETHODCALLTYPE *AddRef)(
1196 IEnumWiaItem2 *This);
1197
1198 ULONG (STDMETHODCALLTYPE *Release)(
1199 IEnumWiaItem2 *This);
1200
1201 /*** IEnumWiaItem2 methods ***/
1202 HRESULT (STDMETHODCALLTYPE *Next)(
1203 IEnumWiaItem2 *This,
1204 ULONG cElt,
1205 IWiaItem2 **ppIWiaItem2,
1206 ULONG *pcEltFetched);
1207
1208 HRESULT (STDMETHODCALLTYPE *Skip)(
1209 IEnumWiaItem2 *This,
1210 ULONG cElt);
1211
1212 HRESULT (STDMETHODCALLTYPE *Reset)(
1213 IEnumWiaItem2 *This);
1214
1215 HRESULT (STDMETHODCALLTYPE *Clone)(
1216 IEnumWiaItem2 *This,
1217 IEnumWiaItem2 **ppIEnum);
1218
1219 HRESULT (STDMETHODCALLTYPE *GetCount)(
1220 IEnumWiaItem2 *This,
1221 ULONG *cElt);
1222
1223 END_INTERFACE
1224} IEnumWiaItem2Vtbl;
1225
1226interface IEnumWiaItem2 {
1227 CONST_VTBL IEnumWiaItem2Vtbl* lpVtbl;
1228};
1229
1230#ifdef COBJMACROS
1231#ifndef WIDL_C_INLINE_WRAPPERS
1232/*** IUnknown methods ***/
1233#define IEnumWiaItem2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1234#define IEnumWiaItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
1235#define IEnumWiaItem2_Release(This) (This)->lpVtbl->Release(This)
1236/*** IEnumWiaItem2 methods ***/
1237#define IEnumWiaItem2_Next(This,cElt,ppIWiaItem2,pcEltFetched) (This)->lpVtbl->Next(This,cElt,ppIWiaItem2,pcEltFetched)
1238#define IEnumWiaItem2_Skip(This,cElt) (This)->lpVtbl->Skip(This,cElt)
1239#define IEnumWiaItem2_Reset(This) (This)->lpVtbl->Reset(This)
1240#define IEnumWiaItem2_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
1241#define IEnumWiaItem2_GetCount(This,cElt) (This)->lpVtbl->GetCount(This,cElt)
1242#else
1243/*** IUnknown methods ***/
1244static inline HRESULT IEnumWiaItem2_QueryInterface(IEnumWiaItem2* This,REFIID riid,void **ppvObject) {
1245 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1246}
1247static inline ULONG IEnumWiaItem2_AddRef(IEnumWiaItem2* This) {
1248 return This->lpVtbl->AddRef(This);
1249}
1250static inline ULONG IEnumWiaItem2_Release(IEnumWiaItem2* This) {
1251 return This->lpVtbl->Release(This);
1252}
1253/*** IEnumWiaItem2 methods ***/
1254static inline HRESULT IEnumWiaItem2_Next(IEnumWiaItem2* This,ULONG cElt,IWiaItem2 **ppIWiaItem2,ULONG *pcEltFetched) {
1255 return This->lpVtbl->Next(This,cElt,ppIWiaItem2,pcEltFetched);
1256}
1257static inline HRESULT IEnumWiaItem2_Skip(IEnumWiaItem2* This,ULONG cElt) {
1258 return This->lpVtbl->Skip(This,cElt);
1259}
1260static inline HRESULT IEnumWiaItem2_Reset(IEnumWiaItem2* This) {
1261 return This->lpVtbl->Reset(This);
1262}
1263static inline HRESULT IEnumWiaItem2_Clone(IEnumWiaItem2* This,IEnumWiaItem2 **ppIEnum) {
1264 return This->lpVtbl->Clone(This,ppIEnum);
1265}
1266static inline HRESULT IEnumWiaItem2_GetCount(IEnumWiaItem2* This,ULONG *cElt) {
1267 return This->lpVtbl->GetCount(This,cElt);
1268}
1269#endif
1270#endif
1271
1272#endif
1273
1274
1275#endif /* __IEnumWiaItem2_INTERFACE_DEFINED__ */
1276
1277/*****************************************************************************
1278 * IWiaItem2 interface
1279 */
1280#ifndef __IWiaItem2_INTERFACE_DEFINED__
1281#define __IWiaItem2_INTERFACE_DEFINED__
1282
1283DEFINE_GUID(IID_IWiaItem2, 0x6cba0075, 0x1287, 0x407d, 0x9b,0x77, 0xcf,0x0e,0x03,0x04,0x35,0xcc);
1284#if defined(__cplusplus) && !defined(CINTERFACE)
1285MIDL_INTERFACE("6cba0075-1287-407d-9b77-cf0e030435cc")
1286IWiaItem2 : public IUnknown
1287{
1288 virtual HRESULT STDMETHODCALLTYPE CreateChildItem(
1289 LONG lItemFlags,
1290 LONG lCreationFlags,
1291 BSTR bstrItemName,
1292 IWiaItem2 **ppIWiaItem2) = 0;
1293
1294 virtual HRESULT STDMETHODCALLTYPE DeleteItem(
1295 LONG lFlags) = 0;
1296
1297 virtual HRESULT STDMETHODCALLTYPE EnumChildItems(
1298 const GUID *pCategoryGUID,
1299 IEnumWiaItem2 **ppIEnumWiaItem2) = 0;
1300
1301 virtual HRESULT STDMETHODCALLTYPE FindItemByName(
1302 LONG lFlags,
1303 BSTR bstrFullItemName,
1304 IWiaItem2 **ppIWiaItem2) = 0;
1305
1306 virtual HRESULT STDMETHODCALLTYPE GetItemCategory(
1307 GUID *pItemCategoryGUID) = 0;
1308
1309 virtual HRESULT STDMETHODCALLTYPE GetItemType(
1310 LONG *pItemType) = 0;
1311
1312 virtual HRESULT STDMETHODCALLTYPE DeviceDlg(
1313 LONG lFlags,
1314 HWND hwndParent,
1315 BSTR bstrFolderName,
1316 BSTR bstrFilename,
1317 LONG *plNumFiles,
1318 BSTR **ppbstrFilePaths,
1319 IWiaItem2 **ppItem) = 0;
1320
1321 virtual HRESULT STDMETHODCALLTYPE DeviceCommand(
1322 LONG lFlags,
1323 const GUID *pCmdGUID,
1324 IWiaItem2 **ppIWiaItem2) = 0;
1325
1326 virtual HRESULT STDMETHODCALLTYPE EnumDeviceCapabilities(
1327 LONG lFlags,
1328 IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS) = 0;
1329
1330 virtual HRESULT STDMETHODCALLTYPE CheckExtension(
1331 LONG lFlags,
1332 BSTR bstrName,
1333 REFIID riidExtensionInterface,
1334 WINBOOL *pbExtensionExists) = 0;
1335
1336 virtual HRESULT STDMETHODCALLTYPE GetExtension(
1337 LONG lFlags,
1338 BSTR bstrName,
1339 REFIID riidExtensionInterface,
1340 void **ppOut) = 0;
1341
1342 virtual HRESULT STDMETHODCALLTYPE GetParentItem(
1343 IWiaItem2 **ppIWiaItem2) = 0;
1344
1345 virtual HRESULT STDMETHODCALLTYPE GetRootItem(
1346 IWiaItem2 **ppIWiaItem2) = 0;
1347
1348 virtual HRESULT STDMETHODCALLTYPE GetPreviewComponent(
1349 LONG lFlags,
1350 IWiaPreview **ppWiaPreview) = 0;
1351
1352 virtual HRESULT STDMETHODCALLTYPE EnumRegisterEventInfo(
1353 LONG lFlags,
1354 const GUID *pEventGUID,
1355 IEnumWIA_DEV_CAPS **ppIEnum) = 0;
1356
1357 virtual HRESULT STDMETHODCALLTYPE Diagnostic(
1358 ULONG ulSize,
1359 BYTE *pBuffer) = 0;
1360
1361};
1362#ifdef __CRT_UUID_DECL
1363__CRT_UUID_DECL(IWiaItem2, 0x6cba0075, 0x1287, 0x407d, 0x9b,0x77, 0xcf,0x0e,0x03,0x04,0x35,0xcc)
1364#endif
1365#else
1366typedef struct IWiaItem2Vtbl {
1367 BEGIN_INTERFACE
1368
1369 /*** IUnknown methods ***/
1370 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1371 IWiaItem2 *This,
1372 REFIID riid,
1373 void **ppvObject);
1374
1375 ULONG (STDMETHODCALLTYPE *AddRef)(
1376 IWiaItem2 *This);
1377
1378 ULONG (STDMETHODCALLTYPE *Release)(
1379 IWiaItem2 *This);
1380
1381 /*** IWiaItem2 methods ***/
1382 HRESULT (STDMETHODCALLTYPE *CreateChildItem)(
1383 IWiaItem2 *This,
1384 LONG lItemFlags,
1385 LONG lCreationFlags,
1386 BSTR bstrItemName,
1387 IWiaItem2 **ppIWiaItem2);
1388
1389 HRESULT (STDMETHODCALLTYPE *DeleteItem)(
1390 IWiaItem2 *This,
1391 LONG lFlags);
1392
1393 HRESULT (STDMETHODCALLTYPE *EnumChildItems)(
1394 IWiaItem2 *This,
1395 const GUID *pCategoryGUID,
1396 IEnumWiaItem2 **ppIEnumWiaItem2);
1397
1398 HRESULT (STDMETHODCALLTYPE *FindItemByName)(
1399 IWiaItem2 *This,
1400 LONG lFlags,
1401 BSTR bstrFullItemName,
1402 IWiaItem2 **ppIWiaItem2);
1403
1404 HRESULT (STDMETHODCALLTYPE *GetItemCategory)(
1405 IWiaItem2 *This,
1406 GUID *pItemCategoryGUID);
1407
1408 HRESULT (STDMETHODCALLTYPE *GetItemType)(
1409 IWiaItem2 *This,
1410 LONG *pItemType);
1411
1412 HRESULT (STDMETHODCALLTYPE *DeviceDlg)(
1413 IWiaItem2 *This,
1414 LONG lFlags,
1415 HWND hwndParent,
1416 BSTR bstrFolderName,
1417 BSTR bstrFilename,
1418 LONG *plNumFiles,
1419 BSTR **ppbstrFilePaths,
1420 IWiaItem2 **ppItem);
1421
1422 HRESULT (STDMETHODCALLTYPE *DeviceCommand)(
1423 IWiaItem2 *This,
1424 LONG lFlags,
1425 const GUID *pCmdGUID,
1426 IWiaItem2 **ppIWiaItem2);
1427
1428 HRESULT (STDMETHODCALLTYPE *EnumDeviceCapabilities)(
1429 IWiaItem2 *This,
1430 LONG lFlags,
1431 IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS);
1432
1433 HRESULT (STDMETHODCALLTYPE *CheckExtension)(
1434 IWiaItem2 *This,
1435 LONG lFlags,
1436 BSTR bstrName,
1437 REFIID riidExtensionInterface,
1438 WINBOOL *pbExtensionExists);
1439
1440 HRESULT (STDMETHODCALLTYPE *GetExtension)(
1441 IWiaItem2 *This,
1442 LONG lFlags,
1443 BSTR bstrName,
1444 REFIID riidExtensionInterface,
1445 void **ppOut);
1446
1447 HRESULT (STDMETHODCALLTYPE *GetParentItem)(
1448 IWiaItem2 *This,
1449 IWiaItem2 **ppIWiaItem2);
1450
1451 HRESULT (STDMETHODCALLTYPE *GetRootItem)(
1452 IWiaItem2 *This,
1453 IWiaItem2 **ppIWiaItem2);
1454
1455 HRESULT (STDMETHODCALLTYPE *GetPreviewComponent)(
1456 IWiaItem2 *This,
1457 LONG lFlags,
1458 IWiaPreview **ppWiaPreview);
1459
1460 HRESULT (STDMETHODCALLTYPE *EnumRegisterEventInfo)(
1461 IWiaItem2 *This,
1462 LONG lFlags,
1463 const GUID *pEventGUID,
1464 IEnumWIA_DEV_CAPS **ppIEnum);
1465
1466 HRESULT (STDMETHODCALLTYPE *Diagnostic)(
1467 IWiaItem2 *This,
1468 ULONG ulSize,
1469 BYTE *pBuffer);
1470
1471 END_INTERFACE
1472} IWiaItem2Vtbl;
1473
1474interface IWiaItem2 {
1475 CONST_VTBL IWiaItem2Vtbl* lpVtbl;
1476};
1477
1478#ifdef COBJMACROS
1479#ifndef WIDL_C_INLINE_WRAPPERS
1480/*** IUnknown methods ***/
1481#define IWiaItem2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1482#define IWiaItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
1483#define IWiaItem2_Release(This) (This)->lpVtbl->Release(This)
1484/*** IWiaItem2 methods ***/
1485#define IWiaItem2_CreateChildItem(This,lItemFlags,lCreationFlags,bstrItemName,ppIWiaItem2) (This)->lpVtbl->CreateChildItem(This,lItemFlags,lCreationFlags,bstrItemName,ppIWiaItem2)
1486#define IWiaItem2_DeleteItem(This,lFlags) (This)->lpVtbl->DeleteItem(This,lFlags)
1487#define IWiaItem2_EnumChildItems(This,pCategoryGUID,ppIEnumWiaItem2) (This)->lpVtbl->EnumChildItems(This,pCategoryGUID,ppIEnumWiaItem2)
1488#define IWiaItem2_FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem2) (This)->lpVtbl->FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem2)
1489#define IWiaItem2_GetItemCategory(This,pItemCategoryGUID) (This)->lpVtbl->GetItemCategory(This,pItemCategoryGUID)
1490#define IWiaItem2_GetItemType(This,pItemType) (This)->lpVtbl->GetItemType(This,pItemType)
1491#define IWiaItem2_DeviceDlg(This,lFlags,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem) (This)->lpVtbl->DeviceDlg(This,lFlags,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem)
1492#define IWiaItem2_DeviceCommand(This,lFlags,pCmdGUID,ppIWiaItem2) (This)->lpVtbl->DeviceCommand(This,lFlags,pCmdGUID,ppIWiaItem2)
1493#define IWiaItem2_EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS) (This)->lpVtbl->EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS)
1494#define IWiaItem2_CheckExtension(This,lFlags,bstrName,riidExtensionInterface,pbExtensionExists) (This)->lpVtbl->CheckExtension(This,lFlags,bstrName,riidExtensionInterface,pbExtensionExists)
1495#define IWiaItem2_GetExtension(This,lFlags,bstrName,riidExtensionInterface,ppOut) (This)->lpVtbl->GetExtension(This,lFlags,bstrName,riidExtensionInterface,ppOut)
1496#define IWiaItem2_GetParentItem(This,ppIWiaItem2) (This)->lpVtbl->GetParentItem(This,ppIWiaItem2)
1497#define IWiaItem2_GetRootItem(This,ppIWiaItem2) (This)->lpVtbl->GetRootItem(This,ppIWiaItem2)
1498#define IWiaItem2_GetPreviewComponent(This,lFlags,ppWiaPreview) (This)->lpVtbl->GetPreviewComponent(This,lFlags,ppWiaPreview)
1499#define IWiaItem2_EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum) (This)->lpVtbl->EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum)
1500#define IWiaItem2_Diagnostic(This,ulSize,pBuffer) (This)->lpVtbl->Diagnostic(This,ulSize,pBuffer)
1501#else
1502/*** IUnknown methods ***/
1503static inline HRESULT IWiaItem2_QueryInterface(IWiaItem2* This,REFIID riid,void **ppvObject) {
1504 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1505}
1506static inline ULONG IWiaItem2_AddRef(IWiaItem2* This) {
1507 return This->lpVtbl->AddRef(This);
1508}
1509static inline ULONG IWiaItem2_Release(IWiaItem2* This) {
1510 return This->lpVtbl->Release(This);
1511}
1512/*** IWiaItem2 methods ***/
1513static inline HRESULT IWiaItem2_CreateChildItem(IWiaItem2* This,LONG lItemFlags,LONG lCreationFlags,BSTR bstrItemName,IWiaItem2 **ppIWiaItem2) {
1514 return This->lpVtbl->CreateChildItem(This,lItemFlags,lCreationFlags,bstrItemName,ppIWiaItem2);
1515}
1516static inline HRESULT IWiaItem2_DeleteItem(IWiaItem2* This,LONG lFlags) {
1517 return This->lpVtbl->DeleteItem(This,lFlags);
1518}
1519static inline HRESULT IWiaItem2_EnumChildItems(IWiaItem2* This,const GUID *pCategoryGUID,IEnumWiaItem2 **ppIEnumWiaItem2) {
1520 return This->lpVtbl->EnumChildItems(This,pCategoryGUID,ppIEnumWiaItem2);
1521}
1522static inline HRESULT IWiaItem2_FindItemByName(IWiaItem2* This,LONG lFlags,BSTR bstrFullItemName,IWiaItem2 **ppIWiaItem2) {
1523 return This->lpVtbl->FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem2);
1524}
1525static inline HRESULT IWiaItem2_GetItemCategory(IWiaItem2* This,GUID *pItemCategoryGUID) {
1526 return This->lpVtbl->GetItemCategory(This,pItemCategoryGUID);
1527}
1528static inline HRESULT IWiaItem2_GetItemType(IWiaItem2* This,LONG *pItemType) {
1529 return This->lpVtbl->GetItemType(This,pItemType);
1530}
1531static inline HRESULT IWiaItem2_DeviceDlg(IWiaItem2* This,LONG lFlags,HWND hwndParent,BSTR bstrFolderName,BSTR bstrFilename,LONG *plNumFiles,BSTR **ppbstrFilePaths,IWiaItem2 **ppItem) {
1532 return This->lpVtbl->DeviceDlg(This,lFlags,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem);
1533}
1534static inline HRESULT IWiaItem2_DeviceCommand(IWiaItem2* This,LONG lFlags,const GUID *pCmdGUID,IWiaItem2 **ppIWiaItem2) {
1535 return This->lpVtbl->DeviceCommand(This,lFlags,pCmdGUID,ppIWiaItem2);
1536}
1537static inline HRESULT IWiaItem2_EnumDeviceCapabilities(IWiaItem2* This,LONG lFlags,IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS) {
1538 return This->lpVtbl->EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS);
1539}
1540static inline HRESULT IWiaItem2_CheckExtension(IWiaItem2* This,LONG lFlags,BSTR bstrName,REFIID riidExtensionInterface,WINBOOL *pbExtensionExists) {
1541 return This->lpVtbl->CheckExtension(This,lFlags,bstrName,riidExtensionInterface,pbExtensionExists);
1542}
1543static inline HRESULT IWiaItem2_GetExtension(IWiaItem2* This,LONG lFlags,BSTR bstrName,REFIID riidExtensionInterface,void **ppOut) {
1544 return This->lpVtbl->GetExtension(This,lFlags,bstrName,riidExtensionInterface,ppOut);
1545}
1546static inline HRESULT IWiaItem2_GetParentItem(IWiaItem2* This,IWiaItem2 **ppIWiaItem2) {
1547 return This->lpVtbl->GetParentItem(This,ppIWiaItem2);
1548}
1549static inline HRESULT IWiaItem2_GetRootItem(IWiaItem2* This,IWiaItem2 **ppIWiaItem2) {
1550 return This->lpVtbl->GetRootItem(This,ppIWiaItem2);
1551}
1552static inline HRESULT IWiaItem2_GetPreviewComponent(IWiaItem2* This,LONG lFlags,IWiaPreview **ppWiaPreview) {
1553 return This->lpVtbl->GetPreviewComponent(This,lFlags,ppWiaPreview);
1554}
1555static inline HRESULT IWiaItem2_EnumRegisterEventInfo(IWiaItem2* This,LONG lFlags,const GUID *pEventGUID,IEnumWIA_DEV_CAPS **ppIEnum) {
1556 return This->lpVtbl->EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum);
1557}
1558static inline HRESULT IWiaItem2_Diagnostic(IWiaItem2* This,ULONG ulSize,BYTE *pBuffer) {
1559 return This->lpVtbl->Diagnostic(This,ulSize,pBuffer);
1560}
1561#endif
1562#endif
1563
1564#endif
1565
1566
1567#endif /* __IWiaItem2_INTERFACE_DEFINED__ */
1568
1569/*****************************************************************************
1570 * IWiaDevMgr2 interface
1571 */
1572#ifndef __IWiaDevMgr2_INTERFACE_DEFINED__
1573#define __IWiaDevMgr2_INTERFACE_DEFINED__
1574
1575DEFINE_GUID(IID_IWiaDevMgr2, 0x79c07cf1, 0xcbdd, 0x41ee, 0x8e,0xc3, 0xf0,0x00,0x80,0xca,0xda,0x7a);
1576#if defined(__cplusplus) && !defined(CINTERFACE)
1577MIDL_INTERFACE("79c07cf1-cbdd-41ee-8ec3-f00080cada7a")
1578IWiaDevMgr2 : public IUnknown
1579{
1580 virtual HRESULT STDMETHODCALLTYPE EnumDeviceInfo(
1581 LONG lFlags,
1582 IEnumWIA_DEV_INFO **ppIEnum) = 0;
1583
1584 virtual HRESULT STDMETHODCALLTYPE CreateDevice(
1585 LONG lFlags,
1586 BSTR bstrDeviceID,
1587 IWiaItem2 **ppWiaItem2Root) = 0;
1588
1589 virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlg(
1590 HWND hwndParent,
1591 LONG lDeviceType,
1592 LONG lFlags,
1593 BSTR *pbstrDeviceID,
1594 IWiaItem2 **ppItemRoot) = 0;
1595
1596 virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlgID(
1597 HWND hwndParent,
1598 LONG lDeviceType,
1599 LONG lFlags,
1600 BSTR *pbstrDeviceID) = 0;
1601
1602 virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackInterface(
1603 LONG lFlags,
1604 BSTR bstrDeviceID,
1605 const GUID *pEventGUID,
1606 IWiaEventCallback *pIWiaEventCallback,
1607 IUnknown **pEventObject) = 0;
1608
1609 virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackProgram(
1610 LONG lFlags,
1611 BSTR bstrDeviceID,
1612 const GUID *pEventGUID,
1613 BSTR bstrFullAppName,
1614 BSTR bstrCommandLineArg,
1615 BSTR bstrName,
1616 BSTR bstrDescription,
1617 BSTR bstrIcon) = 0;
1618
1619 virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackCLSID(
1620 LONG lFlags,
1621 BSTR bstrDeviceID,
1622 const GUID *pEventGUID,
1623 const GUID *pClsID,
1624 BSTR bstrName,
1625 BSTR bstrDescription,
1626 BSTR bstrIcon) = 0;
1627
1628 virtual HRESULT STDMETHODCALLTYPE GetImageDlg(
1629 LONG lFlags,
1630 BSTR bstrDeviceID,
1631 HWND hwndParent,
1632 BSTR bstrFolderName,
1633 BSTR bstrFilename,
1634 LONG *plNumFiles,
1635 BSTR **ppbstrFilePaths,
1636 IWiaItem2 **ppItem) = 0;
1637
1638};
1639#ifdef __CRT_UUID_DECL
1640__CRT_UUID_DECL(IWiaDevMgr2, 0x79c07cf1, 0xcbdd, 0x41ee, 0x8e,0xc3, 0xf0,0x00,0x80,0xca,0xda,0x7a)
1641#endif
1642#else
1643typedef struct IWiaDevMgr2Vtbl {
1644 BEGIN_INTERFACE
1645
1646 /*** IUnknown methods ***/
1647 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1648 IWiaDevMgr2 *This,
1649 REFIID riid,
1650 void **ppvObject);
1651
1652 ULONG (STDMETHODCALLTYPE *AddRef)(
1653 IWiaDevMgr2 *This);
1654
1655 ULONG (STDMETHODCALLTYPE *Release)(
1656 IWiaDevMgr2 *This);
1657
1658 /*** IWiaDevMgr2 methods ***/
1659 HRESULT (STDMETHODCALLTYPE *EnumDeviceInfo)(
1660 IWiaDevMgr2 *This,
1661 LONG lFlags,
1662 IEnumWIA_DEV_INFO **ppIEnum);
1663
1664 HRESULT (STDMETHODCALLTYPE *CreateDevice)(
1665 IWiaDevMgr2 *This,
1666 LONG lFlags,
1667 BSTR bstrDeviceID,
1668 IWiaItem2 **ppWiaItem2Root);
1669
1670 HRESULT (STDMETHODCALLTYPE *SelectDeviceDlg)(
1671 IWiaDevMgr2 *This,
1672 HWND hwndParent,
1673 LONG lDeviceType,
1674 LONG lFlags,
1675 BSTR *pbstrDeviceID,
1676 IWiaItem2 **ppItemRoot);
1677
1678 HRESULT (STDMETHODCALLTYPE *SelectDeviceDlgID)(
1679 IWiaDevMgr2 *This,
1680 HWND hwndParent,
1681 LONG lDeviceType,
1682 LONG lFlags,
1683 BSTR *pbstrDeviceID);
1684
1685 HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackInterface)(
1686 IWiaDevMgr2 *This,
1687 LONG lFlags,
1688 BSTR bstrDeviceID,
1689 const GUID *pEventGUID,
1690 IWiaEventCallback *pIWiaEventCallback,
1691 IUnknown **pEventObject);
1692
1693 HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackProgram)(
1694 IWiaDevMgr2 *This,
1695 LONG lFlags,
1696 BSTR bstrDeviceID,
1697 const GUID *pEventGUID,
1698 BSTR bstrFullAppName,
1699 BSTR bstrCommandLineArg,
1700 BSTR bstrName,
1701 BSTR bstrDescription,
1702 BSTR bstrIcon);
1703
1704 HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackCLSID)(
1705 IWiaDevMgr2 *This,
1706 LONG lFlags,
1707 BSTR bstrDeviceID,
1708 const GUID *pEventGUID,
1709 const GUID *pClsID,
1710 BSTR bstrName,
1711 BSTR bstrDescription,
1712 BSTR bstrIcon);
1713
1714 HRESULT (STDMETHODCALLTYPE *GetImageDlg)(
1715 IWiaDevMgr2 *This,
1716 LONG lFlags,
1717 BSTR bstrDeviceID,
1718 HWND hwndParent,
1719 BSTR bstrFolderName,
1720 BSTR bstrFilename,
1721 LONG *plNumFiles,
1722 BSTR **ppbstrFilePaths,
1723 IWiaItem2 **ppItem);
1724
1725 END_INTERFACE
1726} IWiaDevMgr2Vtbl;
1727
1728interface IWiaDevMgr2 {
1729 CONST_VTBL IWiaDevMgr2Vtbl* lpVtbl;
1730};
1731
1732#ifdef COBJMACROS
1733#ifndef WIDL_C_INLINE_WRAPPERS
1734/*** IUnknown methods ***/
1735#define IWiaDevMgr2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1736#define IWiaDevMgr2_AddRef(This) (This)->lpVtbl->AddRef(This)
1737#define IWiaDevMgr2_Release(This) (This)->lpVtbl->Release(This)
1738/*** IWiaDevMgr2 methods ***/
1739#define IWiaDevMgr2_EnumDeviceInfo(This,lFlags,ppIEnum) (This)->lpVtbl->EnumDeviceInfo(This,lFlags,ppIEnum)
1740#define IWiaDevMgr2_CreateDevice(This,lFlags,bstrDeviceID,ppWiaItem2Root) (This)->lpVtbl->CreateDevice(This,lFlags,bstrDeviceID,ppWiaItem2Root)
1741#define IWiaDevMgr2_SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot) (This)->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot)
1742#define IWiaDevMgr2_SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID) (This)->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID)
1743#define IWiaDevMgr2_RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject) (This)->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject)
1744#define IWiaDevMgr2_RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrFullAppName,bstrCommandLineArg,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrFullAppName,bstrCommandLineArg,bstrName,bstrDescription,bstrIcon)
1745#define IWiaDevMgr2_RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon)
1746#define IWiaDevMgr2_GetImageDlg(This,lFlags,bstrDeviceID,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem) (This)->lpVtbl->GetImageDlg(This,lFlags,bstrDeviceID,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem)
1747#else
1748/*** IUnknown methods ***/
1749static inline HRESULT IWiaDevMgr2_QueryInterface(IWiaDevMgr2* This,REFIID riid,void **ppvObject) {
1750 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1751}
1752static inline ULONG IWiaDevMgr2_AddRef(IWiaDevMgr2* This) {
1753 return This->lpVtbl->AddRef(This);
1754}
1755static inline ULONG IWiaDevMgr2_Release(IWiaDevMgr2* This) {
1756 return This->lpVtbl->Release(This);
1757}
1758/*** IWiaDevMgr2 methods ***/
1759static inline HRESULT IWiaDevMgr2_EnumDeviceInfo(IWiaDevMgr2* This,LONG lFlags,IEnumWIA_DEV_INFO **ppIEnum) {
1760 return This->lpVtbl->EnumDeviceInfo(This,lFlags,ppIEnum);
1761}
1762static inline HRESULT IWiaDevMgr2_CreateDevice(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,IWiaItem2 **ppWiaItem2Root) {
1763 return This->lpVtbl->CreateDevice(This,lFlags,bstrDeviceID,ppWiaItem2Root);
1764}
1765static inline HRESULT IWiaDevMgr2_SelectDeviceDlg(IWiaDevMgr2* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem2 **ppItemRoot) {
1766 return This->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot);
1767}
1768static inline HRESULT IWiaDevMgr2_SelectDeviceDlgID(IWiaDevMgr2* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID) {
1769 return This->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID);
1770}
1771static inline HRESULT IWiaDevMgr2_RegisterEventCallbackInterface(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject) {
1772 return This->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject);
1773}
1774static inline HRESULT IWiaDevMgr2_RegisterEventCallbackProgram(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrFullAppName,BSTR bstrCommandLineArg,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
1775 return This->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrFullAppName,bstrCommandLineArg,bstrName,bstrDescription,bstrIcon);
1776}
1777static inline HRESULT IWiaDevMgr2_RegisterEventCallbackCLSID(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
1778 return This->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon);
1779}
1780static inline HRESULT IWiaDevMgr2_GetImageDlg(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,HWND hwndParent,BSTR bstrFolderName,BSTR bstrFilename,LONG *plNumFiles,BSTR **ppbstrFilePaths,IWiaItem2 **ppItem) {
1781 return This->lpVtbl->GetImageDlg(This,lFlags,bstrDeviceID,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem);
1782}
1783#endif
1784#endif
1785
1786#endif
1787
1788
1789#endif /* __IWiaDevMgr2_INTERFACE_DEFINED__ */
1790
1791/*****************************************************************************
1792 * WiaDevMgr2 coclass
1793 */
1794
1795DEFINE_GUID(CLSID_WiaDevMgr2, 0xb6c292bc, 0x7c88, 0x41ee, 0x8b,0x54, 0x8e,0xc9,0x26,0x17,0xe5,0x99);
1796
1797#ifdef __cplusplus
1798class DECLSPEC_UUID("b6c292bc-7c88-41ee-8b54-8ec92617e599") WiaDevMgr2;
1799#ifdef __CRT_UUID_DECL
1800__CRT_UUID_DECL(WiaDevMgr2, 0xb6c292bc, 0x7c88, 0x41ee, 0x8b,0x54, 0x8e,0xc9,0x26,0x17,0xe5,0x99)
1801#endif
1802#endif
1803
1804/* Begin additional prototypes for all interfaces */
1805
1806ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
1807unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
1808unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
1809void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
1810ULONG __RPC_USER HWND_UserSize (ULONG *, ULONG, HWND *);
1811unsigned char * __RPC_USER HWND_UserMarshal (ULONG *, unsigned char *, HWND *);
1812unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
1813void __RPC_USER HWND_UserFree (ULONG *, HWND *);
1814
1815/* End additional prototypes */
1816
1817#ifdef __cplusplus
1818}
1819#endif
1820
1821#endif /* __wia_lh_h__ */
lib/libc/include/any-windows-any/wia_xp.h created+692
...@@ -0,0 +1,692 @@
1/*** Autogenerated by WIDL 10.0-rc1 from include/wia_xp.idl - Do not edit ***/
2
3#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__
5#define __REQUIRED_RPCNDR_H_VERSION__ 475
6#endif
7#include <rpc.h>
8#include <rpcndr.h>
9#endif
10
11#ifndef COM_NO_WINDOWS_H
12#include <windows.h>
13#include <ole2.h>
14#endif
15
16#ifndef __wia_xp_h__
17#define __wia_xp_h__
18
19/* Forward declarations */
20
21#ifndef __IWiaDevMgr_FWD_DEFINED__
22#define __IWiaDevMgr_FWD_DEFINED__
23typedef interface IWiaDevMgr IWiaDevMgr;
24#ifdef __cplusplus
25interface IWiaDevMgr;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__
30#define __IEnumWIA_DEV_INFO_FWD_DEFINED__
31typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
32#ifdef __cplusplus
33interface IEnumWIA_DEV_INFO;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IWiaPropertyStorage_FWD_DEFINED__
38#define __IWiaPropertyStorage_FWD_DEFINED__
39typedef interface IWiaPropertyStorage IWiaPropertyStorage;
40#ifdef __cplusplus
41interface IWiaPropertyStorage;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IWiaItem_FWD_DEFINED__
46#define __IWiaItem_FWD_DEFINED__
47typedef interface IWiaItem IWiaItem;
48#ifdef __cplusplus
49interface IWiaItem;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IWiaEventCallback_FWD_DEFINED__
54#define __IWiaEventCallback_FWD_DEFINED__
55typedef interface IWiaEventCallback IWiaEventCallback;
56#ifdef __cplusplus
57interface IWiaEventCallback;
58#endif /* __cplusplus */
59#endif
60
61/* Headers for imported files */
62
63#include <unknwn.h>
64#include <oaidl.h>
65#include <propidl.h>
66
67#ifdef __cplusplus
68extern "C" {
69#endif
70
71#include <wiadef.h>
72#ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__
73#define __IEnumWIA_DEV_INFO_FWD_DEFINED__
74typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
75#ifdef __cplusplus
76interface IEnumWIA_DEV_INFO;
77#endif /* __cplusplus */
78#endif
79
80#ifndef __IWiaPropertyStorage_FWD_DEFINED__
81#define __IWiaPropertyStorage_FWD_DEFINED__
82typedef interface IWiaPropertyStorage IWiaPropertyStorage;
83#ifdef __cplusplus
84interface IWiaPropertyStorage;
85#endif /* __cplusplus */
86#endif
87
88#ifndef __IWiaItem_FWD_DEFINED__
89#define __IWiaItem_FWD_DEFINED__
90typedef interface IWiaItem IWiaItem;
91#ifdef __cplusplus
92interface IWiaItem;
93#endif /* __cplusplus */
94#endif
95
96#ifndef __IWiaEventCallback_FWD_DEFINED__
97#define __IWiaEventCallback_FWD_DEFINED__
98typedef interface IWiaEventCallback IWiaEventCallback;
99#ifdef __cplusplus
100interface IWiaEventCallback;
101#endif /* __cplusplus */
102#endif
103
104DEFINE_GUID(CLSID_WiaDevMgr, 0xa1f4e726,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11);
105/*****************************************************************************
106 * IWiaDevMgr interface
107 */
108#ifndef __IWiaDevMgr_INTERFACE_DEFINED__
109#define __IWiaDevMgr_INTERFACE_DEFINED__
110
111DEFINE_GUID(IID_IWiaDevMgr, 0x5eb2502a, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11);
112#if defined(__cplusplus) && !defined(CINTERFACE)
113MIDL_INTERFACE("5eb2502a-8cf1-11d1-bf92-0060081ed811")
114IWiaDevMgr : public IUnknown
115{
116 virtual HRESULT STDMETHODCALLTYPE EnumDeviceInfo(
117 LONG lFlag,
118 IEnumWIA_DEV_INFO **ppIEnum) = 0;
119
120 virtual HRESULT STDMETHODCALLTYPE CreateDevice(
121 BSTR bstrDeviceID,
122 IWiaItem **ppWiaItemRoot) = 0;
123
124 virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlg(
125 HWND hwndParent,
126 LONG lDeviceType,
127 LONG lFlags,
128 BSTR *pbstrDeviceID,
129 IWiaItem **ppItemRoot) = 0;
130
131 virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlgID(
132 HWND hwndParent,
133 LONG lDeviceType,
134 LONG lFlags,
135 BSTR *pbstrDeviceID) = 0;
136
137 virtual HRESULT STDMETHODCALLTYPE GetImageDlg(
138 HWND hwndParent,
139 LONG lDeviceType,
140 LONG lFlags,
141 LONG lIntent,
142 IWiaItem *pItemRoot,
143 BSTR bstrFilename,
144 GUID *pguidFormat) = 0;
145
146 virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackProgram(
147 LONG lFlags,
148 BSTR bstrDeviceID,
149 const GUID *pEventGUID,
150 BSTR bstrCommandline,
151 BSTR bstrName,
152 BSTR bstrDescription,
153 BSTR bstrIcon) = 0;
154
155 virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackInterface(
156 LONG lFlags,
157 BSTR bstrDeviceID,
158 const GUID *pEventGUID,
159 IWiaEventCallback *pIWiaEventCallback,
160 IUnknown **pEventObject) = 0;
161
162 virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackCLSID(
163 LONG lFlags,
164 BSTR bstrDeviceID,
165 const GUID *pEventGUID,
166 const GUID *pClsID,
167 BSTR bstrName,
168 BSTR bstrDescription,
169 BSTR bstrIcon) = 0;
170
171 virtual HRESULT STDMETHODCALLTYPE AddDeviceDlg(
172 HWND hwndParent,
173 LONG lFlags) = 0;
174
175};
176#ifdef __CRT_UUID_DECL
177__CRT_UUID_DECL(IWiaDevMgr, 0x5eb2502a, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11)
178#endif
179#else
180typedef struct IWiaDevMgrVtbl {
181 BEGIN_INTERFACE
182
183 /*** IUnknown methods ***/
184 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
185 IWiaDevMgr *This,
186 REFIID riid,
187 void **ppvObject);
188
189 ULONG (STDMETHODCALLTYPE *AddRef)(
190 IWiaDevMgr *This);
191
192 ULONG (STDMETHODCALLTYPE *Release)(
193 IWiaDevMgr *This);
194
195 /*** IWiaDevMgr methods ***/
196 HRESULT (STDMETHODCALLTYPE *EnumDeviceInfo)(
197 IWiaDevMgr *This,
198 LONG lFlag,
199 IEnumWIA_DEV_INFO **ppIEnum);
200
201 HRESULT (STDMETHODCALLTYPE *CreateDevice)(
202 IWiaDevMgr *This,
203 BSTR bstrDeviceID,
204 IWiaItem **ppWiaItemRoot);
205
206 HRESULT (STDMETHODCALLTYPE *SelectDeviceDlg)(
207 IWiaDevMgr *This,
208 HWND hwndParent,
209 LONG lDeviceType,
210 LONG lFlags,
211 BSTR *pbstrDeviceID,
212 IWiaItem **ppItemRoot);
213
214 HRESULT (STDMETHODCALLTYPE *SelectDeviceDlgID)(
215 IWiaDevMgr *This,
216 HWND hwndParent,
217 LONG lDeviceType,
218 LONG lFlags,
219 BSTR *pbstrDeviceID);
220
221 HRESULT (STDMETHODCALLTYPE *GetImageDlg)(
222 IWiaDevMgr *This,
223 HWND hwndParent,
224 LONG lDeviceType,
225 LONG lFlags,
226 LONG lIntent,
227 IWiaItem *pItemRoot,
228 BSTR bstrFilename,
229 GUID *pguidFormat);
230
231 HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackProgram)(
232 IWiaDevMgr *This,
233 LONG lFlags,
234 BSTR bstrDeviceID,
235 const GUID *pEventGUID,
236 BSTR bstrCommandline,
237 BSTR bstrName,
238 BSTR bstrDescription,
239 BSTR bstrIcon);
240
241 HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackInterface)(
242 IWiaDevMgr *This,
243 LONG lFlags,
244 BSTR bstrDeviceID,
245 const GUID *pEventGUID,
246 IWiaEventCallback *pIWiaEventCallback,
247 IUnknown **pEventObject);
248
249 HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackCLSID)(
250 IWiaDevMgr *This,
251 LONG lFlags,
252 BSTR bstrDeviceID,
253 const GUID *pEventGUID,
254 const GUID *pClsID,
255 BSTR bstrName,
256 BSTR bstrDescription,
257 BSTR bstrIcon);
258
259 HRESULT (STDMETHODCALLTYPE *AddDeviceDlg)(
260 IWiaDevMgr *This,
261 HWND hwndParent,
262 LONG lFlags);
263
264 END_INTERFACE
265} IWiaDevMgrVtbl;
266
267interface IWiaDevMgr {
268 CONST_VTBL IWiaDevMgrVtbl* lpVtbl;
269};
270
271#ifdef COBJMACROS
272#ifndef WIDL_C_INLINE_WRAPPERS
273/*** IUnknown methods ***/
274#define IWiaDevMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
275#define IWiaDevMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
276#define IWiaDevMgr_Release(This) (This)->lpVtbl->Release(This)
277/*** IWiaDevMgr methods ***/
278#define IWiaDevMgr_EnumDeviceInfo(This,lFlag,ppIEnum) (This)->lpVtbl->EnumDeviceInfo(This,lFlag,ppIEnum)
279#define IWiaDevMgr_CreateDevice(This,bstrDeviceID,ppWiaItemRoot) (This)->lpVtbl->CreateDevice(This,bstrDeviceID,ppWiaItemRoot)
280#define IWiaDevMgr_SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot) (This)->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot)
281#define IWiaDevMgr_SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID) (This)->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID)
282#define IWiaDevMgr_GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat) (This)->lpVtbl->GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat)
283#define IWiaDevMgr_RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon)
284#define IWiaDevMgr_RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject) (This)->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject)
285#define IWiaDevMgr_RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon)
286#define IWiaDevMgr_AddDeviceDlg(This,hwndParent,lFlags) (This)->lpVtbl->AddDeviceDlg(This,hwndParent,lFlags)
287#else
288/*** IUnknown methods ***/
289static inline HRESULT IWiaDevMgr_QueryInterface(IWiaDevMgr* This,REFIID riid,void **ppvObject) {
290 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
291}
292static inline ULONG IWiaDevMgr_AddRef(IWiaDevMgr* This) {
293 return This->lpVtbl->AddRef(This);
294}
295static inline ULONG IWiaDevMgr_Release(IWiaDevMgr* This) {
296 return This->lpVtbl->Release(This);
297}
298/*** IWiaDevMgr methods ***/
299static inline HRESULT IWiaDevMgr_EnumDeviceInfo(IWiaDevMgr* This,LONG lFlag,IEnumWIA_DEV_INFO **ppIEnum) {
300 return This->lpVtbl->EnumDeviceInfo(This,lFlag,ppIEnum);
301}
302static inline HRESULT IWiaDevMgr_CreateDevice(IWiaDevMgr* This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot) {
303 return This->lpVtbl->CreateDevice(This,bstrDeviceID,ppWiaItemRoot);
304}
305static inline HRESULT IWiaDevMgr_SelectDeviceDlg(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot) {
306 return This->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot);
307}
308static inline HRESULT IWiaDevMgr_SelectDeviceDlgID(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID) {
309 return This->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID);
310}
311static inline HRESULT IWiaDevMgr_GetImageDlg(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat) {
312 return This->lpVtbl->GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat);
313}
314static inline HRESULT IWiaDevMgr_RegisterEventCallbackProgram(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
315 return This->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon);
316}
317static inline HRESULT IWiaDevMgr_RegisterEventCallbackInterface(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject) {
318 return This->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject);
319}
320static inline HRESULT IWiaDevMgr_RegisterEventCallbackCLSID(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
321 return This->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon);
322}
323static inline HRESULT IWiaDevMgr_AddDeviceDlg(IWiaDevMgr* This,HWND hwndParent,LONG lFlags) {
324 return This->lpVtbl->AddDeviceDlg(This,hwndParent,lFlags);
325}
326#endif
327#endif
328
329#endif
330
331
332#endif /* __IWiaDevMgr_INTERFACE_DEFINED__ */
333
334/*****************************************************************************
335 * IEnumWIA_DEV_INFO interface
336 */
337#ifndef __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
338#define __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
339
340DEFINE_GUID(IID_IEnumWIA_DEV_INFO, 0x5e38b83c, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11);
341#if defined(__cplusplus) && !defined(CINTERFACE)
342MIDL_INTERFACE("5e38b83c-8cf1-11d1-bf92-0060081ed811")
343IEnumWIA_DEV_INFO : public IUnknown
344{
345 virtual HRESULT STDMETHODCALLTYPE Next(
346 ULONG celt,
347 IWiaPropertyStorage **rgelt,
348 ULONG *pceltFetched) = 0;
349
350 virtual HRESULT STDMETHODCALLTYPE Skip(
351 ULONG celt) = 0;
352
353 virtual HRESULT STDMETHODCALLTYPE Reset(
354 ) = 0;
355
356 virtual HRESULT STDMETHODCALLTYPE Clone(
357 IEnumWIA_DEV_INFO **ppIEnum) = 0;
358
359 virtual HRESULT STDMETHODCALLTYPE GetCount(
360 ULONG *celt) = 0;
361
362};
363#ifdef __CRT_UUID_DECL
364__CRT_UUID_DECL(IEnumWIA_DEV_INFO, 0x5e38b83c, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11)
365#endif
366#else
367typedef struct IEnumWIA_DEV_INFOVtbl {
368 BEGIN_INTERFACE
369
370 /*** IUnknown methods ***/
371 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
372 IEnumWIA_DEV_INFO *This,
373 REFIID riid,
374 void **ppvObject);
375
376 ULONG (STDMETHODCALLTYPE *AddRef)(
377 IEnumWIA_DEV_INFO *This);
378
379 ULONG (STDMETHODCALLTYPE *Release)(
380 IEnumWIA_DEV_INFO *This);
381
382 /*** IEnumWIA_DEV_INFO methods ***/
383 HRESULT (STDMETHODCALLTYPE *Next)(
384 IEnumWIA_DEV_INFO *This,
385 ULONG celt,
386 IWiaPropertyStorage **rgelt,
387 ULONG *pceltFetched);
388
389 HRESULT (STDMETHODCALLTYPE *Skip)(
390 IEnumWIA_DEV_INFO *This,
391 ULONG celt);
392
393 HRESULT (STDMETHODCALLTYPE *Reset)(
394 IEnumWIA_DEV_INFO *This);
395
396 HRESULT (STDMETHODCALLTYPE *Clone)(
397 IEnumWIA_DEV_INFO *This,
398 IEnumWIA_DEV_INFO **ppIEnum);
399
400 HRESULT (STDMETHODCALLTYPE *GetCount)(
401 IEnumWIA_DEV_INFO *This,
402 ULONG *celt);
403
404 END_INTERFACE
405} IEnumWIA_DEV_INFOVtbl;
406
407interface IEnumWIA_DEV_INFO {
408 CONST_VTBL IEnumWIA_DEV_INFOVtbl* lpVtbl;
409};
410
411#ifdef COBJMACROS
412#ifndef WIDL_C_INLINE_WRAPPERS
413/*** IUnknown methods ***/
414#define IEnumWIA_DEV_INFO_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
415#define IEnumWIA_DEV_INFO_AddRef(This) (This)->lpVtbl->AddRef(This)
416#define IEnumWIA_DEV_INFO_Release(This) (This)->lpVtbl->Release(This)
417/*** IEnumWIA_DEV_INFO methods ***/
418#define IEnumWIA_DEV_INFO_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
419#define IEnumWIA_DEV_INFO_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
420#define IEnumWIA_DEV_INFO_Reset(This) (This)->lpVtbl->Reset(This)
421#define IEnumWIA_DEV_INFO_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
422#define IEnumWIA_DEV_INFO_GetCount(This,celt) (This)->lpVtbl->GetCount(This,celt)
423#else
424/*** IUnknown methods ***/
425static inline HRESULT IEnumWIA_DEV_INFO_QueryInterface(IEnumWIA_DEV_INFO* This,REFIID riid,void **ppvObject) {
426 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
427}
428static inline ULONG IEnumWIA_DEV_INFO_AddRef(IEnumWIA_DEV_INFO* This) {
429 return This->lpVtbl->AddRef(This);
430}
431static inline ULONG IEnumWIA_DEV_INFO_Release(IEnumWIA_DEV_INFO* This) {
432 return This->lpVtbl->Release(This);
433}
434/*** IEnumWIA_DEV_INFO methods ***/
435static inline HRESULT IEnumWIA_DEV_INFO_Next(IEnumWIA_DEV_INFO* This,ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched) {
436 return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
437}
438static inline HRESULT IEnumWIA_DEV_INFO_Skip(IEnumWIA_DEV_INFO* This,ULONG celt) {
439 return This->lpVtbl->Skip(This,celt);
440}
441static inline HRESULT IEnumWIA_DEV_INFO_Reset(IEnumWIA_DEV_INFO* This) {
442 return This->lpVtbl->Reset(This);
443}
444static inline HRESULT IEnumWIA_DEV_INFO_Clone(IEnumWIA_DEV_INFO* This,IEnumWIA_DEV_INFO **ppIEnum) {
445 return This->lpVtbl->Clone(This,ppIEnum);
446}
447static inline HRESULT IEnumWIA_DEV_INFO_GetCount(IEnumWIA_DEV_INFO* This,ULONG *celt) {
448 return This->lpVtbl->GetCount(This,celt);
449}
450#endif
451#endif
452
453#endif
454
455
456#endif /* __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__ */
457
458/*****************************************************************************
459 * IWiaPropertyStorage interface
460 */
461#ifndef __IWiaPropertyStorage_INTERFACE_DEFINED__
462#define __IWiaPropertyStorage_INTERFACE_DEFINED__
463
464DEFINE_GUID(IID_IWiaPropertyStorage, 0x98b5e8a0, 0x29cc, 0x491a, 0xaa,0xc0, 0xe6,0xdb,0x4f,0xdc,0xce,0xb6);
465#if defined(__cplusplus) && !defined(CINTERFACE)
466MIDL_INTERFACE("98b5e8a0-29cc-491a-aac0-e6db4fdcceb6")
467IWiaPropertyStorage : public IUnknown
468{
469};
470#ifdef __CRT_UUID_DECL
471__CRT_UUID_DECL(IWiaPropertyStorage, 0x98b5e8a0, 0x29cc, 0x491a, 0xaa,0xc0, 0xe6,0xdb,0x4f,0xdc,0xce,0xb6)
472#endif
473#else
474typedef struct IWiaPropertyStorageVtbl {
475 BEGIN_INTERFACE
476
477 /*** IUnknown methods ***/
478 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
479 IWiaPropertyStorage *This,
480 REFIID riid,
481 void **ppvObject);
482
483 ULONG (STDMETHODCALLTYPE *AddRef)(
484 IWiaPropertyStorage *This);
485
486 ULONG (STDMETHODCALLTYPE *Release)(
487 IWiaPropertyStorage *This);
488
489 END_INTERFACE
490} IWiaPropertyStorageVtbl;
491
492interface IWiaPropertyStorage {
493 CONST_VTBL IWiaPropertyStorageVtbl* lpVtbl;
494};
495
496#ifdef COBJMACROS
497#ifndef WIDL_C_INLINE_WRAPPERS
498/*** IUnknown methods ***/
499#define IWiaPropertyStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
500#define IWiaPropertyStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
501#define IWiaPropertyStorage_Release(This) (This)->lpVtbl->Release(This)
502#else
503/*** IUnknown methods ***/
504static inline HRESULT IWiaPropertyStorage_QueryInterface(IWiaPropertyStorage* This,REFIID riid,void **ppvObject) {
505 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
506}
507static inline ULONG IWiaPropertyStorage_AddRef(IWiaPropertyStorage* This) {
508 return This->lpVtbl->AddRef(This);
509}
510static inline ULONG IWiaPropertyStorage_Release(IWiaPropertyStorage* This) {
511 return This->lpVtbl->Release(This);
512}
513#endif
514#endif
515
516#endif
517
518
519#endif /* __IWiaPropertyStorage_INTERFACE_DEFINED__ */
520
521/*****************************************************************************
522 * IWiaItem interface
523 */
524#ifndef __IWiaItem_INTERFACE_DEFINED__
525#define __IWiaItem_INTERFACE_DEFINED__
526
527DEFINE_GUID(IID_IWiaItem, 0x4db1ad10, 0x3391, 0x11d2, 0x9a,0x33, 0x00,0xc0,0x4f,0xa3,0x61,0x45);
528#if defined(__cplusplus) && !defined(CINTERFACE)
529MIDL_INTERFACE("4db1ad10-3391-11d2-9a33-00c04fa36145")
530IWiaItem : public IUnknown
531{
532};
533#ifdef __CRT_UUID_DECL
534__CRT_UUID_DECL(IWiaItem, 0x4db1ad10, 0x3391, 0x11d2, 0x9a,0x33, 0x00,0xc0,0x4f,0xa3,0x61,0x45)
535#endif
536#else
537typedef struct IWiaItemVtbl {
538 BEGIN_INTERFACE
539
540 /*** IUnknown methods ***/
541 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
542 IWiaItem *This,
543 REFIID riid,
544 void **ppvObject);
545
546 ULONG (STDMETHODCALLTYPE *AddRef)(
547 IWiaItem *This);
548
549 ULONG (STDMETHODCALLTYPE *Release)(
550 IWiaItem *This);
551
552 END_INTERFACE
553} IWiaItemVtbl;
554
555interface IWiaItem {
556 CONST_VTBL IWiaItemVtbl* lpVtbl;
557};
558
559#ifdef COBJMACROS
560#ifndef WIDL_C_INLINE_WRAPPERS
561/*** IUnknown methods ***/
562#define IWiaItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
563#define IWiaItem_AddRef(This) (This)->lpVtbl->AddRef(This)
564#define IWiaItem_Release(This) (This)->lpVtbl->Release(This)
565#else
566/*** IUnknown methods ***/
567static inline HRESULT IWiaItem_QueryInterface(IWiaItem* This,REFIID riid,void **ppvObject) {
568 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
569}
570static inline ULONG IWiaItem_AddRef(IWiaItem* This) {
571 return This->lpVtbl->AddRef(This);
572}
573static inline ULONG IWiaItem_Release(IWiaItem* This) {
574 return This->lpVtbl->Release(This);
575}
576#endif
577#endif
578
579#endif
580
581
582#endif /* __IWiaItem_INTERFACE_DEFINED__ */
583
584/*****************************************************************************
585 * IWiaEventCallback interface
586 */
587#ifndef __IWiaEventCallback_INTERFACE_DEFINED__
588#define __IWiaEventCallback_INTERFACE_DEFINED__
589
590DEFINE_GUID(IID_IWiaEventCallback, 0xae6287b0, 0x0084, 0x11d2, 0x97,0x3b, 0x00,0xa0,0xc9,0x06,0x8f,0x2e);
591#if defined(__cplusplus) && !defined(CINTERFACE)
592MIDL_INTERFACE("ae6287b0-0084-11d2-973b-00a0c9068f2e")
593IWiaEventCallback : public IUnknown
594{
595 virtual HRESULT STDMETHODCALLTYPE ImageEventCallback(
596 const GUID *pEventGUID,
597 BSTR bstrEventDescription,
598 BSTR bstrDeviceID,
599 BSTR bstrDeviceDescription,
600 DWORD dwDeviceType,
601 BSTR bstrFullItemName,
602 ULONG *pulEventType,
603 ULONG ulReserved) = 0;
604
605};
606#ifdef __CRT_UUID_DECL
607__CRT_UUID_DECL(IWiaEventCallback, 0xae6287b0, 0x0084, 0x11d2, 0x97,0x3b, 0x00,0xa0,0xc9,0x06,0x8f,0x2e)
608#endif
609#else
610typedef struct IWiaEventCallbackVtbl {
611 BEGIN_INTERFACE
612
613 /*** IUnknown methods ***/
614 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
615 IWiaEventCallback *This,
616 REFIID riid,
617 void **ppvObject);
618
619 ULONG (STDMETHODCALLTYPE *AddRef)(
620 IWiaEventCallback *This);
621
622 ULONG (STDMETHODCALLTYPE *Release)(
623 IWiaEventCallback *This);
624
625 /*** IWiaEventCallback methods ***/
626 HRESULT (STDMETHODCALLTYPE *ImageEventCallback)(
627 IWiaEventCallback *This,
628 const GUID *pEventGUID,
629 BSTR bstrEventDescription,
630 BSTR bstrDeviceID,
631 BSTR bstrDeviceDescription,
632 DWORD dwDeviceType,
633 BSTR bstrFullItemName,
634 ULONG *pulEventType,
635 ULONG ulReserved);
636
637 END_INTERFACE
638} IWiaEventCallbackVtbl;
639
640interface IWiaEventCallback {
641 CONST_VTBL IWiaEventCallbackVtbl* lpVtbl;
642};
643
644#ifdef COBJMACROS
645#ifndef WIDL_C_INLINE_WRAPPERS
646/*** IUnknown methods ***/
647#define IWiaEventCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
648#define IWiaEventCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
649#define IWiaEventCallback_Release(This) (This)->lpVtbl->Release(This)
650/*** IWiaEventCallback methods ***/
651#define IWiaEventCallback_ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved) (This)->lpVtbl->ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved)
652#else
653/*** IUnknown methods ***/
654static inline HRESULT IWiaEventCallback_QueryInterface(IWiaEventCallback* This,REFIID riid,void **ppvObject) {
655 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
656}
657static inline ULONG IWiaEventCallback_AddRef(IWiaEventCallback* This) {
658 return This->lpVtbl->AddRef(This);
659}
660static inline ULONG IWiaEventCallback_Release(IWiaEventCallback* This) {
661 return This->lpVtbl->Release(This);
662}
663/*** IWiaEventCallback methods ***/
664static inline HRESULT IWiaEventCallback_ImageEventCallback(IWiaEventCallback* This,const GUID *pEventGUID,BSTR bstrEventDescription,BSTR bstrDeviceID,BSTR bstrDeviceDescription,DWORD dwDeviceType,BSTR bstrFullItemName,ULONG *pulEventType,ULONG ulReserved) {
665 return This->lpVtbl->ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved);
666}
667#endif
668#endif
669
670#endif
671
672
673#endif /* __IWiaEventCallback_INTERFACE_DEFINED__ */
674
675/* Begin additional prototypes for all interfaces */
676
677ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
678unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
679unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
680void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
681ULONG __RPC_USER HWND_UserSize (ULONG *, ULONG, HWND *);
682unsigned char * __RPC_USER HWND_UserMarshal (ULONG *, unsigned char *, HWND *);
683unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
684void __RPC_USER HWND_UserFree (ULONG *, HWND *);
685
686/* End additional prototypes */
687
688#ifdef __cplusplus
689}
690#endif
691
692#endif /* __wia_xp_h__ */
lib/libc/include/any-windows-any/wiadef.h-4
...@@ -12,10 +12,6 @@...@@ -12,10 +12,6 @@
12#include <objbase.h>12#include <objbase.h>
13#endif13#endif
1414
15#ifndef __wia_h__
16#error Please include in front wia.h instead.
17#endif
18
19#ifdef __cplusplus15#ifdef __cplusplus
20extern "C" {16extern "C" {
21#endif17#endif
lib/libc/include/any-windows-any/wincodec.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wincodec.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wincodec.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wincodecsdk.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wincodecsdk.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wincodecsdk.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wincon.h+13-400
...@@ -3,422 +3,35 @@...@@ -3,422 +3,35 @@
3 * This file is part of the mingw-w64 runtime package.3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */5 */
6
6#ifndef _WINCON_7#ifndef _WINCON_
7#define _WINCON_8#define _WINCON_
89
9#include <_mingw_unicode.h>
10
11#include <winapifamily.h>10#include <winapifamily.h>
1211
13#ifdef __cplusplus12#ifdef __cplusplus
14extern "C" {13extern "C" {
15#endif14#endif
1615
17#define CONSOLE_REAL_OUTPUT_HANDLE (LongToHandle(-2))16#include <wincontypes.h>
18#define CONSOLE_REAL_INPUT_HANDLE (LongToHandle(-3))
19
20 typedef struct _COORD {
21 SHORT X;
22 SHORT Y;
23 } COORD,*PCOORD;
24
25 typedef struct _SMALL_RECT {
26 SHORT Left;
27 SHORT Top;
28 SHORT Right;
29 SHORT Bottom;
30 } SMALL_RECT,*PSMALL_RECT;
31
32 typedef struct _KEY_EVENT_RECORD {
33 WINBOOL bKeyDown;
34 WORD wRepeatCount;
35 WORD wVirtualKeyCode;
36 WORD wVirtualScanCode;
37 union {
38 WCHAR UnicodeChar;
39 CHAR AsciiChar;
40 } uChar;
41 DWORD dwControlKeyState;
42 } KEY_EVENT_RECORD,*PKEY_EVENT_RECORD;
43
44#define RIGHT_ALT_PRESSED 0x1
45#define LEFT_ALT_PRESSED 0x2
46#define RIGHT_CTRL_PRESSED 0x4
47#define LEFT_CTRL_PRESSED 0x8
48#define SHIFT_PRESSED 0x10
49#define NUMLOCK_ON 0x20
50#define SCROLLLOCK_ON 0x40
51#define CAPSLOCK_ON 0x80
52#define ENHANCED_KEY 0x100
53#define NLS_DBCSCHAR 0x10000
54#define NLS_ALPHANUMERIC 0x0
55#define NLS_KATAKANA 0x20000
56#define NLS_HIRAGANA 0x40000
57#define NLS_ROMAN 0x400000
58#define NLS_IME_CONVERSION 0x800000
59#define ALTNUMPAD_BIT 0x4000000
60#define NLS_IME_DISABLE 0x20000000
61
62 typedef struct _MOUSE_EVENT_RECORD {
63 COORD dwMousePosition;
64 DWORD dwButtonState;
65 DWORD dwControlKeyState;
66 DWORD dwEventFlags;
67 } MOUSE_EVENT_RECORD,*PMOUSE_EVENT_RECORD;
6817
69#define FROM_LEFT_1ST_BUTTON_PRESSED 0x118#ifndef NOGDI
70#define RIGHTMOST_BUTTON_PRESSED 0x219#include <wingdi.h>
71#define FROM_LEFT_2ND_BUTTON_PRESSED 0x4
72#define FROM_LEFT_3RD_BUTTON_PRESSED 0x8
73#define FROM_LEFT_4TH_BUTTON_PRESSED 0x10
74
75#define MOUSE_MOVED 0x1
76#define DOUBLE_CLICK 0x2
77#define MOUSE_WHEELED 0x4
78#if (_WIN32_WINNT >= 0x0600)
79#define MOUSE_HWHEELED 0x8
80#endif20#endif
8121
82 typedef struct _WINDOW_BUFFER_SIZE_RECORD {22#ifndef NOAPISET
83 COORD dwSize;23#include <consoleapi.h>
84 } WINDOW_BUFFER_SIZE_RECORD,*PWINDOW_BUFFER_SIZE_RECORD;24#include <consoleapi2.h>
8525#include <consoleapi3.h>
86 typedef struct _MENU_EVENT_RECORD {26#endif
87 UINT dwCommandId;
88 } MENU_EVENT_RECORD,*PMENU_EVENT_RECORD;
89
90 typedef struct _FOCUS_EVENT_RECORD {
91 WINBOOL bSetFocus;
92 } FOCUS_EVENT_RECORD,*PFOCUS_EVENT_RECORD;
93
94 typedef struct _INPUT_RECORD {
95 WORD EventType;
96 union {
97 KEY_EVENT_RECORD KeyEvent;
98 MOUSE_EVENT_RECORD MouseEvent;
99 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
100 MENU_EVENT_RECORD MenuEvent;
101 FOCUS_EVENT_RECORD FocusEvent;
102 } Event;
103 } INPUT_RECORD,*PINPUT_RECORD;
104
105#define KEY_EVENT 0x1
106#define MOUSE_EVENT 0x2
107#define WINDOW_BUFFER_SIZE_EVENT 0x4
108#define MENU_EVENT 0x8
109#define FOCUS_EVENT 0x10
110
111 typedef struct _CHAR_INFO {
112 union {
113 WCHAR UnicodeChar;
114 CHAR AsciiChar;
115 } Char;
116 WORD Attributes;
117 } CHAR_INFO,*PCHAR_INFO;
118
119#define FOREGROUND_BLUE 0x1
120#define FOREGROUND_GREEN 0x2
121#define FOREGROUND_RED 0x4
122#define FOREGROUND_INTENSITY 0x8
123#define BACKGROUND_BLUE 0x10
124#define BACKGROUND_GREEN 0x20
125#define BACKGROUND_RED 0x40
126#define BACKGROUND_INTENSITY 0x80
127#define COMMON_LVB_LEADING_BYTE 0x100
128#define COMMON_LVB_TRAILING_BYTE 0x200
129#define COMMON_LVB_GRID_HORIZONTAL 0x400
130#define COMMON_LVB_GRID_LVERTICAL 0x800
131#define COMMON_LVB_GRID_RVERTICAL 0x1000
132#define COMMON_LVB_REVERSE_VIDEO 0x4000
133#define COMMON_LVB_UNDERSCORE 0x8000
134
135#define COMMON_LVB_SBCSDBCS 0x300
136
137 typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
138 COORD dwSize;
139 COORD dwCursorPosition;
140 WORD wAttributes;
141 SMALL_RECT srWindow;
142 COORD dwMaximumWindowSize;
143 } CONSOLE_SCREEN_BUFFER_INFO,*PCONSOLE_SCREEN_BUFFER_INFO;
144
145 typedef struct _CONSOLE_CURSOR_INFO {
146 DWORD dwSize;
147 WINBOOL bVisible;
148 } CONSOLE_CURSOR_INFO,*PCONSOLE_CURSOR_INFO;
149
150 typedef struct _CONSOLE_FONT_INFO {
151 DWORD nFont;
152 COORD dwFontSize;
153 } CONSOLE_FONT_INFO,*PCONSOLE_FONT_INFO;
154
155 typedef struct _CONSOLE_SELECTION_INFO {
156 DWORD dwFlags;
157 COORD dwSelectionAnchor;
158 SMALL_RECT srSelection;
159 } CONSOLE_SELECTION_INFO,*PCONSOLE_SELECTION_INFO;
160
161#define CONSOLE_NO_SELECTION 0x0
162#define CONSOLE_SELECTION_IN_PROGRESS 0x1
163#define CONSOLE_SELECTION_NOT_EMPTY 0x2
164#define CONSOLE_MOUSE_SELECTION 0x4
165#define CONSOLE_MOUSE_DOWN 0x8
166
167 typedef WINBOOL (WINAPI *PHANDLER_ROUTINE)(DWORD CtrlType);
168
169#define CTRL_C_EVENT 0
170#define CTRL_BREAK_EVENT 1
171#define CTRL_CLOSE_EVENT 2
172
173#define CTRL_LOGOFF_EVENT 5
174#define CTRL_SHUTDOWN_EVENT 6
175
176#define ENABLE_PROCESSED_INPUT 0x1
177#define ENABLE_LINE_INPUT 0x2
178#define ENABLE_ECHO_INPUT 0x4
179#define ENABLE_WINDOW_INPUT 0x8
180#define ENABLE_MOUSE_INPUT 0x10
181#define ENABLE_INSERT_MODE 0x20
182#define ENABLE_QUICK_EDIT_MODE 0x40
183#define ENABLE_EXTENDED_FLAGS 0x80
184#define ENABLE_AUTO_POSITION 0x100
185#define ENABLE_VIRTUAL_TERMINAL_INPUT 0x200
186
187#define ENABLE_PROCESSED_OUTPUT 0x1
188#define ENABLE_WRAP_AT_EOL_OUTPUT 0x2
189#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x4
190#define DISABLE_NEWLINE_AUTO_RETURN 0x8
191#define ENABLE_LVB_GRID_WORLDWIDE 0x10
192
193#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
194
195#define PeekConsoleInput __MINGW_NAME_AW(PeekConsoleInput)
196#define ReadConsoleInput __MINGW_NAME_AW(ReadConsoleInput)
197#define WriteConsoleInput __MINGW_NAME_AW(WriteConsoleInput)
198#define ReadConsoleOutput __MINGW_NAME_AW(ReadConsoleOutput)
199#define WriteConsoleOutput __MINGW_NAME_AW(WriteConsoleOutput)
200#define ReadConsoleOutputCharacter __MINGW_NAME_AW(ReadConsoleOutputCharacter)
201#define WriteConsoleOutputCharacter __MINGW_NAME_AW(WriteConsoleOutputCharacter)
202#define FillConsoleOutputCharacter __MINGW_NAME_AW(FillConsoleOutputCharacter)
203#define ScrollConsoleScreenBuffer __MINGW_NAME_AW(ScrollConsoleScreenBuffer)
204#define GetConsoleTitle __MINGW_NAME_AW(GetConsoleTitle)
205#define SetConsoleTitle __MINGW_NAME_AW(SetConsoleTitle)
206#define ReadConsole __MINGW_NAME_AW(ReadConsole)
207#define WriteConsole __MINGW_NAME_AW(WriteConsole)
208#define AddConsoleAlias __MINGW_NAME_AW(AddConsoleAlias)
209#define GetConsoleAlias __MINGW_NAME_AW(GetConsoleAlias)
210#define GetConsoleAliasesLength __MINGW_NAME_AW(GetConsoleAliasesLength)
211#define GetConsoleAliasExesLength __MINGW_NAME_AW(GetConsoleAliasExesLength)
212#define GetConsoleAliases __MINGW_NAME_AW(GetConsoleAliases)
213#define GetConsoleAliasExes __MINGW_NAME_AW(GetConsoleAliasExes)
214
215 WINBASEAPI WINBOOL WINAPI PeekConsoleInputA(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
216 WINBASEAPI WINBOOL WINAPI PeekConsoleInputW(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
217 WINBASEAPI WINBOOL WINAPI ReadConsoleInputA(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
218 WINBASEAPI WINBOOL WINAPI ReadConsoleInputW(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
219 WINBASEAPI WINBOOL WINAPI WriteConsoleInputA(HANDLE hConsoleInput,CONST INPUT_RECORD *lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsWritten);
220 WINBASEAPI WINBOOL WINAPI WriteConsoleInputW(HANDLE hConsoleInput,CONST INPUT_RECORD *lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsWritten);
221 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputA(HANDLE hConsoleOutput,PCHAR_INFO lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpReadRegion);
222 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputW(HANDLE hConsoleOutput,PCHAR_INFO lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpReadRegion);
223 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputA(HANDLE hConsoleOutput,CONST CHAR_INFO *lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpWriteRegion);
224 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputW(HANDLE hConsoleOutput,CONST CHAR_INFO *lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpWriteRegion);
225 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterA(HANDLE hConsoleOutput,LPSTR lpCharacter,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfCharsRead);
226 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterW(HANDLE hConsoleOutput,LPWSTR lpCharacter,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfCharsRead);
227 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputAttribute(HANDLE hConsoleOutput,LPWORD lpAttribute,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfAttrsRead);
228 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterA(HANDLE hConsoleOutput,LPCSTR lpCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
229 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterW(HANDLE hConsoleOutput,LPCWSTR lpCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
230 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputAttribute(HANDLE hConsoleOutput,CONST WORD *lpAttribute,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfAttrsWritten);
231 WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterA(HANDLE hConsoleOutput,CHAR cCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
232 WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterW(HANDLE hConsoleOutput,WCHAR cCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
233 WINBASEAPI WINBOOL WINAPI FillConsoleOutputAttribute(HANDLE hConsoleOutput,WORD wAttribute,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfAttrsWritten);
234 WINBASEAPI WINBOOL WINAPI GetConsoleMode(HANDLE hConsoleHandle,LPDWORD lpMode);
235 WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE hConsoleInput,LPDWORD lpNumberOfEvents);
236 WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfo(HANDLE hConsoleOutput,PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);
237 WINBASEAPI COORD WINAPI GetLargestConsoleWindowSize(HANDLE hConsoleOutput);
238 WINBASEAPI WINBOOL WINAPI GetConsoleCursorInfo(HANDLE hConsoleOutput,PCONSOLE_CURSOR_INFO lpConsoleCursorInfo);
239 WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFont(HANDLE hConsoleOutput,WINBOOL bMaximumWindow,PCONSOLE_FONT_INFO lpConsoleCurrentFont);
240 WINBASEAPI COORD WINAPI GetConsoleFontSize(HANDLE hConsoleOutput,DWORD nFont);
241 WINBASEAPI WINBOOL WINAPI GetConsoleSelectionInfo(PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo);
242 WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD lpNumberOfMouseButtons);
243 WINBASEAPI WINBOOL WINAPI SetConsoleMode(HANDLE hConsoleHandle,DWORD dwMode);
244 WINBASEAPI WINBOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE hConsoleOutput);
245 WINBASEAPI WINBOOL WINAPI FlushConsoleInputBuffer(HANDLE hConsoleInput);
246 WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferSize(HANDLE hConsoleOutput,COORD dwSize);
247 WINBASEAPI WINBOOL WINAPI SetConsoleCursorPosition(HANDLE hConsoleOutput,COORD dwCursorPosition);
248 WINBASEAPI WINBOOL WINAPI SetConsoleCursorInfo(HANDLE hConsoleOutput,CONST CONSOLE_CURSOR_INFO *lpConsoleCursorInfo);
249 WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferA(HANDLE hConsoleOutput,CONST SMALL_RECT *lpScrollRectangle,CONST SMALL_RECT *lpClipRectangle,COORD dwDestinationOrigin,CONST CHAR_INFO *lpFill);
250 WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferW(HANDLE hConsoleOutput,CONST SMALL_RECT *lpScrollRectangle,CONST SMALL_RECT *lpClipRectangle,COORD dwDestinationOrigin,CONST CHAR_INFO *lpFill);
251 WINBASEAPI WINBOOL WINAPI SetConsoleWindowInfo(HANDLE hConsoleOutput,WINBOOL bAbsolute,CONST SMALL_RECT *lpConsoleWindow);
252 WINBASEAPI WINBOOL WINAPI SetConsoleTextAttribute(HANDLE hConsoleOutput,WORD wAttributes);
253 WINBASEAPI WINBOOL WINAPI SetConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine,WINBOOL Add);
254 WINBASEAPI WINBOOL WINAPI GenerateConsoleCtrlEvent(DWORD dwCtrlEvent,DWORD dwProcessGroupId);
255 WINBASEAPI WINBOOL WINAPI AllocConsole(VOID);
256 WINBASEAPI WINBOOL WINAPI FreeConsole(VOID);
257 WINBASEAPI WINBOOL WINAPI AttachConsole(DWORD dwProcessId);
258
259#define ATTACH_PARENT_PROCESS ((DWORD)-1)
26027
261 WINBASEAPI DWORD WINAPI GetConsoleTitleA(LPSTR lpConsoleTitle,DWORD nSize);28#define CONSOLE_REAL_OUTPUT_HANDLE (LongToHandle(-2))
262 WINBASEAPI DWORD WINAPI GetConsoleTitleW(LPWSTR lpConsoleTitle,DWORD nSize);29#define CONSOLE_REAL_INPUT_HANDLE (LongToHandle(-3))
263 WINBASEAPI WINBOOL WINAPI SetConsoleTitleA(LPCSTR lpConsoleTitle);
264 WINBASEAPI WINBOOL WINAPI SetConsoleTitleW(LPCWSTR lpConsoleTitle);
265 WINBASEAPI WINBOOL WINAPI ReadConsoleA(HANDLE hConsoleInput,LPVOID lpBuffer,DWORD nNumberOfCharsToRead,LPDWORD lpNumberOfCharsRead,LPVOID lpReserved);
266 WINBASEAPI WINBOOL WINAPI ReadConsoleW(HANDLE hConsoleInput,LPVOID lpBuffer,DWORD nNumberOfCharsToRead,LPDWORD lpNumberOfCharsRead,LPVOID lpReserved);
267 WINBASEAPI WINBOOL WINAPI WriteConsoleA(HANDLE hConsoleOutput,CONST VOID *lpBuffer,DWORD nNumberOfCharsToWrite,LPDWORD lpNumberOfCharsWritten,LPVOID lpReserved);
268 WINBASEAPI WINBOOL WINAPI WriteConsoleW(HANDLE hConsoleOutput,CONST VOID *lpBuffer,DWORD nNumberOfCharsToWrite,LPDWORD lpNumberOfCharsWritten,LPVOID lpReserved);
26930
270#define CONSOLE_TEXTMODE_BUFFER 131#define CONSOLE_TEXTMODE_BUFFER 1
27132
272 WINBASEAPI HANDLE WINAPI CreateConsoleScreenBuffer(DWORD dwDesiredAccess,DWORD dwShareMode,CONST SECURITY_ATTRIBUTES *lpSecurityAttributes,DWORD dwFlags,LPVOID lpScreenBufferData);
273 WINBASEAPI UINT WINAPI GetConsoleCP(VOID);
274 WINBASEAPI WINBOOL WINAPI SetConsoleCP(UINT wCodePageID);
275 WINBASEAPI UINT WINAPI GetConsoleOutputCP(VOID);
276 WINBASEAPI WINBOOL WINAPI SetConsoleOutputCP(UINT wCodePageID);
277
278#define CONSOLE_FULLSCREEN 1
279#define CONSOLE_FULLSCREEN_HARDWARE 2
280 WINBASEAPI WINBOOL WINAPI GetConsoleDisplayMode(LPDWORD lpModeFlags);
281
282#define CONSOLE_FULLSCREEN_MODE 1
283#define CONSOLE_WINDOWED_MODE 2
284 WINBASEAPI WINBOOL WINAPI SetConsoleDisplayMode(HANDLE hConsoleOutput, DWORD dwFlags, PCOORD lpNewScreenBufferDimensions);
285
286 WINBASEAPI HWND WINAPI GetConsoleWindow(VOID);
287 WINBASEAPI DWORD WINAPI GetConsoleProcessList(LPDWORD lpdwProcessList,DWORD dwProcessCount);
288 WINBASEAPI WINBOOL WINAPI AddConsoleAliasA(LPSTR Source,LPSTR Target,LPSTR ExeName);
289 WINBASEAPI WINBOOL WINAPI AddConsoleAliasW(LPWSTR Source,LPWSTR Target,LPWSTR ExeName);
290 WINBASEAPI DWORD WINAPI GetConsoleAliasA(LPSTR Source,LPSTR TargetBuffer,DWORD TargetBufferLength,LPSTR ExeName);
291 WINBASEAPI DWORD WINAPI GetConsoleAliasW(LPWSTR Source,LPWSTR TargetBuffer,DWORD TargetBufferLength,LPWSTR ExeName);
292 WINBASEAPI DWORD WINAPI GetConsoleAliasesLengthA(LPSTR ExeName);
293 WINBASEAPI DWORD WINAPI GetConsoleAliasesLengthW(LPWSTR ExeName);
294 WINBASEAPI DWORD WINAPI GetConsoleAliasExesLengthA(VOID);
295 WINBASEAPI DWORD WINAPI GetConsoleAliasExesLengthW(VOID);
296 WINBASEAPI DWORD WINAPI GetConsoleAliasesA(LPSTR AliasBuffer,DWORD AliasBufferLength,LPSTR ExeName);
297 WINBASEAPI DWORD WINAPI GetConsoleAliasesW(LPWSTR AliasBuffer,DWORD AliasBufferLength,LPWSTR ExeName);
298 WINBASEAPI DWORD WINAPI GetConsoleAliasExesA(LPSTR ExeNameBuffer,DWORD ExeNameBufferLength);
299 WINBASEAPI DWORD WINAPI GetConsoleAliasExesW(LPWSTR ExeNameBuffer,DWORD ExeNameBufferLength);
300
301WINBASEAPI VOID WINAPI ExpungeConsoleCommandHistoryA(LPSTR ExeName);
302WINBASEAPI VOID WINAPI ExpungeConsoleCommandHistoryW(LPWSTR ExeName);
303#define ExpungeConsoleCommandHistory __MINGW_NAME_AW(ExpungeConsoleCommandHistory)
304
305WINBASEAPI WINBOOL WINAPI SetConsoleNumberOfCommandsA(DWORD Number, LPSTR ExeName);
306WINBASEAPI WINBOOL WINAPI SetConsoleNumberOfCommandsW(DWORD Number, LPWSTR ExeName);
307#define SetConsoleNumberOfCommands __MINGW_NAME_AW(SetConsoleNumberOfCommands)
308
309WINBASEAPI DWORD WINAPI GetConsoleCommandHistoryLengthA(LPSTR ExeName);
310WINBASEAPI DWORD WINAPI GetConsoleCommandHistoryLengthW(LPWSTR ExeName);
311#define GetConsoleCommandHistoryLength __MINGW_NAME_AW(GetConsoleCommandHistoryLength)
312
313WINBASEAPI DWORD WINAPI GetConsoleCommandHistoryA(LPSTR Commands, DWORD CommandBufferLength, LPSTR ExeName);
314WINBASEAPI DWORD WINAPI GetConsoleCommandHistoryW(LPWSTR Commands, DWORD CommandBufferLength, LPWSTR ExeName);
315#define GetConsoleCommandHistory __MINGW_NAME_AW(GetConsoleCommandHistory)
316
317#ifndef NOGDI
318
319typedef struct _CONSOLE_FONT_INFOEX {
320 ULONG cbSize;
321 DWORD nFont;
322 COORD dwFontSize;
323 UINT FontFamily;
324 UINT FontWeight;
325 WCHAR FaceName[LF_FACESIZE];
326} CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;
327
328WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFontEx(
329 HANDLE hConsoleOutput,
330 WINBOOL bMaximumWindow,
331 PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx
332);
333
334WINBASEAPI WINBOOL WINAPI SetCurrentConsoleFontEx(
335 HANDLE hConsoleOutput,
336 WINBOOL bMaximumWindow,
337 PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx
338);
339
340#endif /* NOGDI */
341
342#define HISTORY_NO_DUP_FLAG 0x1
343
344typedef struct _CONSOLE_HISTORY_INFO {
345 UINT cbSize;
346 UINT HistoryBufferSize;
347 UINT NumberOfHistoryBuffers;
348 DWORD dwFlags;
349} CONSOLE_HISTORY_INFO, *PCONSOLE_HISTORY_INFO;
350
351typedef struct _CONSOLE_READCONSOLE_CONTROL {
352 ULONG nLength;
353 ULONG nInitialChars;
354 ULONG dwCtrlWakeupMask;
355 ULONG dwControlKeyState;
356} CONSOLE_READCONSOLE_CONTROL, *PCONSOLE_READCONSOLE_CONTROL;
357
358typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX {
359 ULONG cbSize;
360 COORD dwSize;
361 COORD dwCursorPosition;
362 WORD wAttributes;
363 SMALL_RECT srWindow;
364 COORD dwMaximumWindowSize;
365 WORD wPopupAttributes;
366 WINBOOL bFullscreenSupported;
367 COLORREF ColorTable[16];
368} CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX;
369
370WINBOOL WINAPI GetConsoleHistoryInfo(
371 PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo
372);
373
374#if (_WIN32_WINNT >= 0x0600)
375#define GetConsoleOriginalTitle __MINGW_NAME_AW(GetConsoleOriginalTitle)
376
377WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleA(
378 LPSTR lpConsoleTitle,
379 DWORD nSize
380);
381
382WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleW(
383 LPWSTR lpConsoleTitle,
384 DWORD nSize
385);
386#endif /* (_WIN32_WINNT >= 0x0600) */
387
388WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfoEx(
389 HANDLE hConsoleOutput,
390 PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx
391);
392
393WINBASEAPI WINBOOL WINAPI SetConsoleHistoryInfo(
394 PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo
395);
396
397WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferInfoEx(
398 HANDLE hConsoleOutput,
399 PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx
400);
401
402#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
403
404#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
405
406#if (NTDDI_VERSION >= 0x0A000006)
407
408/* CreatePseudoConsole Flags */
409#define PSEUDOCONSOLE_INHERIT_CURSOR 1
410
411typedef VOID* HPCON;
412
413WINBASEAPI HRESULT WINAPI CreatePseudoConsole(COORD size, HANDLE hInput, HANDLE hOutput, DWORD dwFlags, HPCON* phPC);
414WINBASEAPI HRESULT WINAPI ResizePseudoConsole(HPCON hPC, COORD size);
415WINBASEAPI VOID WINAPI ClosePseudoConsole(HPCON hPC);
416
417#endif /* NTDDI_WIN10_RS5 */
418
419#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
420
421#ifdef __cplusplus33#ifdef __cplusplus
422}34}
423#endif35#endif
424#endif36
37#endif /* _WINCON_ */
lib/libc/include/any-windows-any/wincontypes.h created+130
...@@ -0,0 +1,130 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#ifndef _WINCONTYPES_
8#define _WINCONTYPES_
9
10#include <minwindef.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
17
18typedef struct _COORD {
19 SHORT X;
20 SHORT Y;
21} COORD, *PCOORD;
22
23typedef struct _SMALL_RECT {
24 SHORT Left;
25 SHORT Top;
26 SHORT Right;
27 SHORT Bottom;
28} SMALL_RECT, *PSMALL_RECT;
29
30typedef struct _KEY_EVENT_RECORD {
31 WINBOOL bKeyDown;
32 WORD wRepeatCount;
33 WORD wVirtualKeyCode;
34 WORD wVirtualScanCode;
35 union {
36 WCHAR UnicodeChar;
37 CHAR AsciiChar;
38 } uChar;
39 DWORD dwControlKeyState;
40} KEY_EVENT_RECORD, *PKEY_EVENT_RECORD;
41
42#define RIGHT_ALT_PRESSED 0x0001
43#define LEFT_ALT_PRESSED 0x0002
44#define RIGHT_CTRL_PRESSED 0x0004
45#define LEFT_CTRL_PRESSED 0x0008
46#define SHIFT_PRESSED 0x0010
47#define NUMLOCK_ON 0x0020
48#define SCROLLLOCK_ON 0x0040
49#define CAPSLOCK_ON 0x0080
50#define ENHANCED_KEY 0x0100
51#define NLS_DBCSCHAR 0x00010000
52#define NLS_ALPHANUMERIC 0x00000000
53#define NLS_KATAKANA 0x00020000
54#define NLS_HIRAGANA 0x00040000
55#define NLS_ROMAN 0x00400000
56#define NLS_IME_CONVERSION 0x00800000
57#define ALTNUMPAD_BIT 0x04000000
58#define NLS_IME_DISABLE 0x20000000
59
60typedef struct _MOUSE_EVENT_RECORD {
61 COORD dwMousePosition;
62 DWORD dwButtonState;
63 DWORD dwControlKeyState;
64 DWORD dwEventFlags;
65} MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD;
66
67#define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001
68#define RIGHTMOST_BUTTON_PRESSED 0x0002
69#define FROM_LEFT_2ND_BUTTON_PRESSED 0x0004
70#define FROM_LEFT_3RD_BUTTON_PRESSED 0x0008
71#define FROM_LEFT_4TH_BUTTON_PRESSED 0x0010
72
73#define MOUSE_MOVED 0x0001
74#define DOUBLE_CLICK 0x0002
75#define MOUSE_WHEELED 0x0004
76#if (_WIN32_WINNT >= 0x0600)
77#define MOUSE_HWHEELED 0x0008
78#endif /* _WIN32_WINNT >= 0x0600 */
79
80typedef struct _WINDOW_BUFFER_SIZE_RECORD {
81 COORD dwSize;
82} WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD;
83
84typedef struct _MENU_EVENT_RECORD {
85 UINT dwCommandId;
86} MENU_EVENT_RECORD, *PMENU_EVENT_RECORD;
87
88typedef struct _FOCUS_EVENT_RECORD {
89 WINBOOL bSetFocus;
90} FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD;
91
92typedef struct _INPUT_RECORD {
93 WORD EventType;
94 union {
95 KEY_EVENT_RECORD KeyEvent;
96 MOUSE_EVENT_RECORD MouseEvent;
97 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
98 MENU_EVENT_RECORD MenuEvent;
99 FOCUS_EVENT_RECORD FocusEvent;
100 } Event;
101} INPUT_RECORD, *PINPUT_RECORD;
102
103#define KEY_EVENT 0x0001
104#define MOUSE_EVENT 0x0002
105#define WINDOW_BUFFER_SIZE_EVENT 0x0004
106#define MENU_EVENT 0x0008
107#define FOCUS_EVENT 0x0010
108
109typedef struct _CHAR_INFO {
110 union {
111 WCHAR UnicodeChar;
112 CHAR AsciiChar;
113 } Char;
114 WORD Attributes;
115} CHAR_INFO, *PCHAR_INFO;
116
117typedef struct _CONSOLE_FONT_INFO {
118 DWORD nFont;
119 COORD dwFontSize;
120} CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO;
121
122typedef VOID *HPCON;
123
124#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
125
126#ifdef __cplusplus
127}
128#endif
129
130#endif /* _WINCONTYPES_ */
lib/libc/include/any-windows-any/winnt.h+360-150
...@@ -48,6 +48,13 @@ extern "C" {...@@ -48,6 +48,13 @@ extern "C" {
48#endif48#endif
49#endif /* _ARM64_ */49#endif /* _ARM64_ */
5050
51#if defined(__arm64ec__) && \
52 !(defined(_X86_) || defined(__i386__) || defined(_IA64_) || defined (__arm__) || defined(__aarch64__))
53#if !defined(_ARM64EC_)
54#define _ARM64EC_
55#endif
56#endif /* _ARM64EC_ */
57
51#if defined(__ia64__) && \58#if defined(__ia64__) && \
52 !(defined(_X86_) || defined(__x86_64) || defined(_AMD64_) || defined (__arm__) || defined(__aarch64__))59 !(defined(_X86_) || defined(__x86_64) || defined(_AMD64_) || defined (__arm__) || defined(__aarch64__))
53#if !defined(_IA64_)60#if !defined(_IA64_)
...@@ -1582,7 +1589,7 @@ __MINGW_CXX14_CONSTEXPR inline ENUMTYPE& operator ^= (ENUMTYPE& a, ENUMTYPE b) {...@@ -1582,7 +1589,7 @@ __MINGW_CXX14_CONSTEXPR inline ENUMTYPE& operator ^= (ENUMTYPE& a, ENUMTYPE b) {
15821589
1583#ifdef _AMD64_1590#ifdef _AMD64_
15841591
1585#if defined(__x86_64) && !defined(RC_INVOKED)1592#if defined(__x86_64) && !defined(__arm64ec__) && !defined(RC_INVOKED)
15861593
1587#ifdef __cplusplus1594#ifdef __cplusplus
1588 extern "C" {1595 extern "C" {
...@@ -1782,7 +1789,7 @@ extern "C" {...@@ -1782,7 +1789,7 @@ extern "C" {
1782#ifdef __cplusplus1789#ifdef __cplusplus
1783 }1790 }
1784#endif1791#endif
1785#endif /* defined(__x86_64) && !defined(RC_INVOKED) */1792#endif /* defined(__x86_64) && !defined(__arm64ec__) && !defined(RC_INVOKED) */
17861793
1787#define EXCEPTION_READ_FAULT 01794#define EXCEPTION_READ_FAULT 0
1788#define EXCEPTION_WRITE_FAULT 11795#define EXCEPTION_WRITE_FAULT 1
...@@ -2084,24 +2091,6 @@ extern "C" {...@@ -2084,24 +2091,6 @@ extern "C" {
2084#define UNW_FLAG_EHANDLER 0x12091#define UNW_FLAG_EHANDLER 0x1
2085#define UNW_FLAG_UHANDLER 0x22092#define UNW_FLAG_UHANDLER 0x2
20862093
2087#define UNWIND_HISTORY_TABLE_SIZE 12
2088
2089 typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
2090 DWORD ImageBase;
2091 PRUNTIME_FUNCTION FunctionEntry;
2092 } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
2093
2094 typedef struct _UNWIND_HISTORY_TABLE {
2095 DWORD Count;
2096 BYTE LocalHint;
2097 BYTE GlobalHint;
2098 BYTE Search;
2099 BYTE Once;
2100 DWORD LowAddress;
2101 DWORD HighAddress;
2102 UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
2103 } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
2104
2105 struct _DISPATCHER_CONTEXT;2094 struct _DISPATCHER_CONTEXT;
2106 typedef struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT;2095 typedef struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT;
2107 typedef struct _DISPATCHER_CONTEXT *PDISPATCHER_CONTEXT;2096 typedef struct _DISPATCHER_CONTEXT *PDISPATCHER_CONTEXT;
...@@ -2115,7 +2104,7 @@ extern "C" {...@@ -2115,7 +2104,7 @@ extern "C" {
2115 PCONTEXT ContextRecord;2104 PCONTEXT ContextRecord;
2116 PEXCEPTION_ROUTINE LanguageHandler;2105 PEXCEPTION_ROUTINE LanguageHandler;
2117 PVOID HandlerData;2106 PVOID HandlerData;
2118 PUNWIND_HISTORY_TABLE HistoryTable;2107 struct _UNWIND_HISTORY_TABLE *HistoryTable;
2119 ULONG ScopeIndex;2108 ULONG ScopeIndex;
2120 BOOLEAN ControlPcIsUnwound;2109 BOOLEAN ControlPcIsUnwound;
2121 PBYTE NonVolatileRegisters;2110 PBYTE NonVolatileRegisters;
...@@ -2147,9 +2136,9 @@ extern "C" {...@@ -2147,9 +2136,9 @@ extern "C" {
2147#endif /* _ARM_ */2136#endif /* _ARM_ */
21482137
21492138
2150#ifdef _ARM64_2139#if defined(_ARM64_) || defined(_ARM64EC_)
21512140
2152#if defined(__aarch64__) && !defined(RC_INVOKED)2141#if (defined(__aarch64__) || defined(__arm64ec__)) && !defined(RC_INVOKED)
21532142
2154#ifdef __cplusplus2143#ifdef __cplusplus
2155 extern "C" {2144 extern "C" {
...@@ -2219,33 +2208,51 @@ extern "C" {...@@ -2219,33 +2208,51 @@ extern "C" {
2219#ifdef __cplusplus2208#ifdef __cplusplus
2220 }2209 }
2221#endif2210#endif
2222#endif /* defined(__aarch64__) && !defined(RC_INVOKED) */2211#endif /* (defined(__aarch64__) || defined(__arm64ec__)) && !defined(RC_INVOKED) */
22232212
2224#define EXCEPTION_READ_FAULT 02213#define EXCEPTION_READ_FAULT 0
2225#define EXCEPTION_WRITE_FAULT 12214#define EXCEPTION_WRITE_FAULT 1
2226#define EXCEPTION_EXECUTE_FAULT 82215#define EXCEPTION_EXECUTE_FAULT 8
2216#endif /* defined(_ARM64_) || defined(_ARM64EC_) */
22272217
2228#if !defined(RC_INVOKED)2218#if !defined(RC_INVOKED)
22292219
2230#define CONTEXT_ARM64 0x4000002220#define CONTEXT_ARM64 0x400000
2231#define CONTEXT_CONTROL (CONTEXT_ARM64 | 0x00000001)2221#define CONTEXT_ARM64_CONTROL (CONTEXT_ARM64 | 0x00000001)
2232#define CONTEXT_INTEGER (CONTEXT_ARM64 | 0x00000002)2222#define CONTEXT_ARM64_INTEGER (CONTEXT_ARM64 | 0x00000002)
2233#define CONTEXT_FLOATING_POINT (CONTEXT_ARM64 | 0x00000004)2223#define CONTEXT_ARM64_FLOATING_POINT (CONTEXT_ARM64 | 0x00000004)
2234#define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARM64 | 0x00000008)2224#define CONTEXT_ARM64_DEBUG_REGISTERS (CONTEXT_ARM64 | 0x00000008)
2225#define CONTEXT_ARM64_X18 (CONTEXT_ARM64 | 0x00000010)
22352226
2236#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER)
2237#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS)
22382227
2239#define EXCEPTION_READ_FAULT 02228#define CONTEXT_ARM64_FULL (CONTEXT_ARM64_CONTROL | CONTEXT_ARM64_INTEGER | CONTEXT_ARM64_FLOATING_POINT)
2240#define EXCEPTION_WRITE_FAULT 12229#define CONTEXT_ARM64_ALL (CONTEXT_ARM64_CONTROL | CONTEXT_ARM64_INTEGER | CONTEXT_ARM64_FLOATING_POINT | CONTEXT_ARM64_DEBUG_REGISTERS | CONTEXT_ARM64_X18)
2241#define EXCEPTION_EXECUTE_FAULT 8
22422230
2243#define ARM64_MAX_BREAKPOINTS 82231#define CONTEXT_ARM64_UNWOUND_TO_CALL 0x20000000
2244#define ARM64_MAX_WATCHPOINTS 22232
2233#ifdef _ARM64_
2234
2235#define CONTEXT_CONTROL CONTEXT_ARM64_CONTROL
2236#define CONTEXT_INTEGER CONTEXT_ARM64_INTEGER
2237#define CONTEXT_FLOATING_POINT CONTEXT_ARM64_FLOATING_POINT
2238#define CONTEXT_DEBUG_REGISTERS CONTEXT_ARM64_DEBUG_REGISTERS
2239#define CONTEXT_FULL CONTEXT_ARM64_FULL
2240#define CONTEXT_ALL CONTEXT_ARM64_ALL
2241#define CONTEXT_UNWOUND_TO_CALL CONTEXT_ARM64_UNWOUND_TO_CALL
2242
2243#define CONTEXT_EXCEPTION_ACTIVE 0x08000000
2244#define CONTEXT_SERVICE_ACTIVE 0x10000000
2245#define CONTEXT_EXCEPTION_REQUEST 0x40000000
2246#define CONTEXT_EXCEPTION_REPORTING 0x80000000
2247
2248#endif /* _ARM64_ */
22452249
2246#endif /* !defined(RC_INVOKED) */2250#endif /* !defined(RC_INVOKED) */
22472251
2248 typedef union _NEON128 {2252#define ARM64_MAX_BREAKPOINTS 8
2253#define ARM64_MAX_WATCHPOINTS 2
2254
2255 typedef union _ARM64_NT_NEON128 {
2249 struct2256 struct
2250 {2257 {
2251 ULONGLONG Low;2258 ULONGLONG Low;
...@@ -2255,9 +2262,19 @@ extern "C" {...@@ -2255,9 +2262,19 @@ extern "C" {
2255 float S[4];2262 float S[4];
2256 WORD H[8];2263 WORD H[8];
2257 BYTE B[16];2264 BYTE B[16];
2258 } NEON128, *PNEON128;2265 } ARM64_NT_NEON128, *PARM64_NT_NEON128;
22592266
2260 typedef struct DECLSPEC_ALIGN(16) _CONTEXT {2267#ifdef _ARM64_
2268 typedef ARM64_NT_NEON128 NEON128, *PNEON128;
2269#endif
2270
2271 typedef struct DECLSPEC_ALIGN(16)
2272#ifdef _ARM64_
2273 _CONTEXT
2274#else
2275 _ARM64_NT_CONTEXT
2276#endif
2277 {
2261 ULONG ContextFlags; /* 000 */2278 ULONG ContextFlags; /* 000 */
2262 /* CONTEXT_INTEGER */2279 /* CONTEXT_INTEGER */
2263 ULONG Cpsr; /* 004 */2280 ULONG Cpsr; /* 004 */
...@@ -2303,7 +2320,7 @@ extern "C" {...@@ -2303,7 +2320,7 @@ extern "C" {
2303 DWORD64 Sp; /* 100 */2320 DWORD64 Sp; /* 100 */
2304 DWORD64 Pc; /* 108 */2321 DWORD64 Pc; /* 108 */
2305 /* CONTEXT_FLOATING_POINT */2322 /* CONTEXT_FLOATING_POINT */
2306 NEON128 V[32]; /* 110 */2323 ARM64_NT_NEON128 V[32]; /* 110 */
2307 DWORD Fpcr; /* 310 */2324 DWORD Fpcr; /* 310 */
2308 DWORD Fpsr; /* 314 */2325 DWORD Fpsr; /* 314 */
2309 /* CONTEXT_DEBUG_REGISTERS */2326 /* CONTEXT_DEBUG_REGISTERS */
...@@ -2311,53 +2328,152 @@ extern "C" {...@@ -2311,53 +2328,152 @@ extern "C" {
2311 DWORD64 Bvr[ARM64_MAX_BREAKPOINTS]; /* 338 */2328 DWORD64 Bvr[ARM64_MAX_BREAKPOINTS]; /* 338 */
2312 DWORD Wcr[ARM64_MAX_WATCHPOINTS]; /* 378 */2329 DWORD Wcr[ARM64_MAX_WATCHPOINTS]; /* 378 */
2313 DWORD64 Wvr[ARM64_MAX_WATCHPOINTS]; /* 380 */2330 DWORD64 Wvr[ARM64_MAX_WATCHPOINTS]; /* 380 */
2314 } CONTEXT, *PCONTEXT;2331 } ARM64_NT_CONTEXT, *PARM64_NT_CONTEXT;
2332
2333#ifdef _ARM64_
2334 typedef ARM64_NT_CONTEXT CONTEXT, *PCONTEXT;
2335#endif
2336
23152337
2338 typedef struct DECLSPEC_ALIGN(16) _ARM64EC_NT_CONTEXT
2339 {
2340 union
2341 {
2342 struct
2343 {
2344 DWORD64 AMD64_P1Home; /* 000 */
2345 DWORD64 AMD64_P2Home; /* 008 */
2346 DWORD64 AMD64_P3Home; /* 010 */
2347 DWORD64 AMD64_P4Home; /* 018 */
2348 DWORD64 AMD64_P5Home; /* 020 */
2349 DWORD64 AMD64_P6Home; /* 028 */
2350 DWORD ContextFlags; /* 030 */
2351 DWORD AMD64_MxCsr_copy; /* 034 */
2352 WORD AMD64_SegCs; /* 038 */
2353 WORD AMD64_SegDs; /* 03a */
2354 WORD AMD64_SegEs; /* 03c */
2355 WORD AMD64_SegFs; /* 03e */
2356 WORD AMD64_SegGs; /* 040 */
2357 WORD AMD64_SegSs; /* 042 */
2358 DWORD AMD64_EFlags; /* 044 */
2359 DWORD64 AMD64_Dr0; /* 048 */
2360 DWORD64 AMD64_Dr1; /* 050 */
2361 DWORD64 AMD64_Dr2; /* 058 */
2362 DWORD64 AMD64_Dr3; /* 060 */
2363 DWORD64 AMD64_Dr6; /* 068 */
2364 DWORD64 AMD64_Dr7; /* 070 */
2365 DWORD64 X8; /* 078 (Rax) */
2366 DWORD64 X0; /* 080 (Rcx) */
2367 DWORD64 X1; /* 088 (Rdx) */
2368 DWORD64 X27; /* 090 (Rbx) */
2369 DWORD64 Sp; /* 098 (Rsp) */
2370 DWORD64 Fp; /* 0a0 (Rbp) */
2371 DWORD64 X25; /* 0a8 (Rsi) */
2372 DWORD64 X26; /* 0b0 (Rdi) */
2373 DWORD64 X2; /* 0b8 (R8) */
2374 DWORD64 X3; /* 0c0 (R9) */
2375 DWORD64 X4; /* 0c8 (R10) */
2376 DWORD64 X5; /* 0d0 (R11) */
2377 DWORD64 X19; /* 0d8 (R12) */
2378 DWORD64 X20; /* 0e0 (R13) */
2379 DWORD64 X21; /* 0e8 (R14) */
2380 DWORD64 X22; /* 0f0 (R15) */
2381 DWORD64 Pc; /* 0f8 (Rip) */
2382 struct
2383 {
2384 WORD AMD64_ControlWord; /* 100 */
2385 WORD AMD64_StatusWord; /* 102 */
2386 BYTE AMD64_TagWord; /* 104 */
2387 BYTE AMD64_Reserved1; /* 105 */
2388 WORD AMD64_ErrorOpcode; /* 106 */
2389 DWORD AMD64_ErrorOffset; /* 108 */
2390 WORD AMD64_ErrorSelector; /* 10c */
2391 WORD AMD64_Reserved2; /* 10e */
2392 DWORD AMD64_DataOffset; /* 110 */
2393 WORD AMD64_DataSelector; /* 114 */
2394 WORD AMD64_Reserved3; /* 116 */
2395 DWORD AMD64_MxCsr; /* 118 */
2396 DWORD AMD64_MxCsr_Mask; /* 11c */
2397 DWORD64 Lr; /* 120 (FloatRegisters[0]) */
2398 WORD X16_0; /* 128 */
2399 WORD AMD64_St0_Reserved1; /* 12a */
2400 DWORD AMD64_St0_Reserved2; /* 12c */
2401 DWORD64 X6; /* 130 (FloatRegisters[1]) */
2402 WORD X16_1; /* 138 */
2403 WORD AMD64_St1_Reserved1; /* 13a */
2404 DWORD AMD64_St1_Reserved2; /* 13c */
2405 DWORD64 X7; /* 140 (FloatRegisters[2]) */
2406 WORD X16_2; /* 148 */
2407 WORD AMD64_St2_Reserved1; /* 14a */
2408 DWORD AMD64_St2_Reserved2; /* 14c */
2409 DWORD64 X9; /* 150 (FloatRegisters[3]) */
2410 WORD X16_3; /* 158 */
2411 WORD AMD64_St3_Reserved1; /* 15a */
2412 DWORD AMD64_St3_Reserved2; /* 15c */
2413 DWORD64 X10; /* 160 (FloatRegisters[4]) */
2414 WORD X17_0; /* 168 */
2415 WORD AMD64_St4_Reserved1; /* 16a */
2416 DWORD AMD64_St4_Reserved2; /* 16c */
2417 DWORD64 X11; /* 170 (FloatRegisters[5]) */
2418 WORD X17_1; /* 178 */
2419 WORD AMD64_St5_Reserved1; /* 17a */
2420 DWORD AMD64_St5_Reserved2; /* 17c */
2421 DWORD64 X12; /* 180 (FloatRegisters[6]) */
2422 WORD X17_2; /* 188 */
2423 WORD AMD64_St6_Reserved1; /* 18a */
2424 DWORD AMD64_St6_Reserved2; /* 18c */
2425 DWORD64 X15; /* 190 (FloatRegisters[7]) */
2426 WORD X17_3; /* 198 */
2427 WORD AMD64_St7_Reserved1; /* 19a */
2428 DWORD AMD64_St7_Reserved2; /* 19c */
2429 ARM64_NT_NEON128 V[16]; /* 1a0 (XmmRegisters) */
2430 BYTE AMD64_XSAVE_FORMAT_Reserved4[96]; /* 2a0 */
2431 } DUMMYSTRUCTNAME;
2432 ARM64_NT_NEON128 AMD64_VectorRegister[26]; /* 300 */
2433 DWORD64 AMD64_VectorControl; /* 4a0 */
2434 DWORD64 AMD64_DebugControl; /* 4a8 */
2435 DWORD64 AMD64_LastBranchToRip; /* 4b0 */
2436 DWORD64 AMD64_LastBranchFromRip; /* 4b8 */
2437 DWORD64 AMD64_LastExceptionToRip; /* 4c0 */
2438 DWORD64 AMD64_LastExceptionFromRip; /* 4c8 */
2439 } DUMMYSTRUCTNAME;
2440#ifdef _ARM64EC_
2441 CONTEXT AMD64_Context;
2442#endif
2443 } DUMMYUNIONNAME;
2444 } ARM64EC_NT_CONTEXT, *PARM64EC_NT_CONTEXT;
2445
2446 typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY ARM64_RUNTIME_FUNCTION, *PARM64_RUNTIME_FUNCTION;
2447
2448#ifdef _ARM64_
2316 typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;2449 typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
2317 typedef PRUNTIME_FUNCTION (*PGET_RUNTIME_FUNCTION_CALLBACK)(DWORD64 ControlPc,PVOID Context);2450 typedef PRUNTIME_FUNCTION (*PGET_RUNTIME_FUNCTION_CALLBACK)(DWORD64 ControlPc,PVOID Context);
2451#endif
23182452
2319#define UNW_FLAG_NHANDLER 0x02453#define UNW_FLAG_NHANDLER 0x0
2320#define UNW_FLAG_EHANDLER 0x12454#define UNW_FLAG_EHANDLER 0x1
2321#define UNW_FLAG_UHANDLER 0x22455#define UNW_FLAG_UHANDLER 0x2
23222456
2323#define UNWIND_HISTORY_TABLE_SIZE 122457 typedef struct _DISPATCHER_CONTEXT_ARM64 {
2324
2325 typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
2326 DWORD64 ImageBase;
2327 PRUNTIME_FUNCTION FunctionEntry;
2328 } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
2329
2330 typedef struct _UNWIND_HISTORY_TABLE {
2331 DWORD Count;
2332 BYTE LocalHint;
2333 BYTE GlobalHint;
2334 BYTE Search;
2335 BYTE Once;
2336 DWORD64 LowAddress;
2337 DWORD64 HighAddress;
2338 UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
2339 } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
2340
2341 struct _DISPATCHER_CONTEXT;
2342 typedef struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT;
2343 typedef struct _DISPATCHER_CONTEXT *PDISPATCHER_CONTEXT;
2344
2345 struct _DISPATCHER_CONTEXT {
2346 ULONG_PTR ControlPc;2458 ULONG_PTR ControlPc;
2347 ULONG_PTR ImageBase;2459 ULONG_PTR ImageBase;
2348 PRUNTIME_FUNCTION FunctionEntry;2460 PARM64_RUNTIME_FUNCTION FunctionEntry;
2349 ULONG_PTR EstablisherFrame;2461 ULONG_PTR EstablisherFrame;
2350 ULONG_PTR TargetPc;2462 ULONG_PTR TargetPc;
2351 PCONTEXT ContextRecord;2463 PARM64_NT_CONTEXT ContextRecord;
2352 PEXCEPTION_ROUTINE LanguageHandler;2464 PEXCEPTION_ROUTINE LanguageHandler;
2353 PVOID HandlerData;2465 PVOID HandlerData;
2354 PUNWIND_HISTORY_TABLE HistoryTable;2466 struct _UNWIND_HISTORY_TABLE *HistoryTable;
2355 ULONG ScopeIndex;2467 ULONG ScopeIndex;
2356 BOOLEAN ControlPcIsUnwound;2468 BOOLEAN ControlPcIsUnwound;
2357 PBYTE NonVolatileRegisters;2469 PBYTE NonVolatileRegisters;
2358 };2470 } DISPATCHER_CONTEXT_ARM64, *PDISPATCHER_CONTEXT_ARM64;
23592471
2360 typedef struct _KNONVOLATILE_CONTEXT_POINTERS {2472#if defined(_ARM64_)
2473 typedef DISPATCHER_CONTEXT_ARM64 DISPATCHER_CONTEXT, *PDISPATCHER_CONTEXT;
2474#endif
2475
2476 typedef struct _KNONVOLATILE_CONTEXT_POINTERS_ARM64 {
2361 PDWORD64 X19;2477 PDWORD64 X19;
2362 PDWORD64 X20;2478 PDWORD64 X20;
2363 PDWORD64 X21;2479 PDWORD64 X21;
...@@ -2379,12 +2495,13 @@ extern "C" {...@@ -2379,12 +2495,13 @@ extern "C" {
2379 PDWORD64 D13;2495 PDWORD64 D13;
2380 PDWORD64 D14;2496 PDWORD64 D14;
2381 PDWORD64 D15;2497 PDWORD64 D15;
2382 } KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS;2498 } KNONVOLATILE_CONTEXT_POINTERS_ARM64, *PKNONVOLATILE_CONTEXT_POINTERS_ARM64;
23832499
2384#define OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME "OutOfProcessFunctionTableCallback"2500#ifdef _ARM64_
23852501 typedef KNONVOLATILE_CONTEXT_POINTERS_ARM64 KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS;
2386#endif /* _ARM64_ */2502#endif
23872503
2504#define OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME "OutOfProcessFunctionTableCallback"
23882505
2389#ifdef _X86_2506#ifdef _X86_
23902507
...@@ -2474,25 +2591,8 @@ __buildmemorybarrier()...@@ -2474,25 +2591,8 @@ __buildmemorybarrier()
2474#define PF_TEMPORAL_LEVEL_12591#define PF_TEMPORAL_LEVEL_1
2475#define PF_NON_TEMPORAL_LEVEL_ALL2592#define PF_NON_TEMPORAL_LEVEL_ALL
24762593
2477#define PcTeb 0x18
2478 struct _TEB *NtCurrentTeb(void);
2479 PVOID GetCurrentFiber(void);
2480 PVOID GetFiberData(void);
2481
2482#define DbgRaiseAssertionFailure __int2c2594#define DbgRaiseAssertionFailure __int2c
24832595
2484 FORCEINLINE struct _TEB *NtCurrentTeb(void)
2485 {
2486 return (struct _TEB *)__readfsdword(PcTeb);
2487 }
2488 FORCEINLINE PVOID GetCurrentFiber(void)
2489 {
2490 return(PVOID)__readfsdword(0x10);
2491 }
2492 FORCEINLINE PVOID GetFiberData(void)
2493 {
2494 return *(PVOID *)GetCurrentFiber();
2495 }
2496#endif /* defined(__i386__) && !defined(__x86_64) */2596#endif /* defined(__i386__) && !defined(__x86_64) */
24972597
2498#define EXCEPTION_READ_FAULT 02598#define EXCEPTION_READ_FAULT 0
...@@ -2656,8 +2756,6 @@ __buildmemorybarrier()...@@ -2656,8 +2756,6 @@ __buildmemorybarrier()
2656#define UnsignedMultiplyHigh __UMULH2756#define UnsignedMultiplyHigh __UMULH
26572757
2658 ULONGLONG UnsignedMultiplyHigh(ULONGLONG Multiplier,ULONGLONG Multiplicand);2758 ULONGLONG UnsignedMultiplyHigh(ULONGLONG Multiplier,ULONGLONG Multiplicand);
2659#else /* __ia64__ */
2660 struct _TEB *NtCurrentTeb(void);
2661#endif /* __ia64__ */2759#endif /* __ia64__ */
2662#endif /* !defined(GENUTIL) && !defined(_GENIA64_) && defined(_IA64_) */2760#endif /* !defined(GENUTIL) && !defined(_GENIA64_) && defined(_IA64_) */
26632761
...@@ -2976,30 +3074,10 @@ __buildmemorybarrier()...@@ -2976,30 +3074,10 @@ __buildmemorybarrier()
29763074
2977#ifdef __x86_64__3075#ifdef __x86_64__
29783076
2979 /* http://msdn.microsoft.com/en-us/library/ms680597(VS.85).aspx */
2980
2981#define UNWIND_HISTORY_TABLE_SIZE 12
2982
2983 typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
2984 ULONG64 ImageBase;
2985 PRUNTIME_FUNCTION FunctionEntry;
2986 } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
2987
2988#define UNWIND_HISTORY_TABLE_NONE 03077#define UNWIND_HISTORY_TABLE_NONE 0
2989#define UNWIND_HISTORY_TABLE_GLOBAL 13078#define UNWIND_HISTORY_TABLE_GLOBAL 1
2990#define UNWIND_HISTORY_TABLE_LOCAL 23079#define UNWIND_HISTORY_TABLE_LOCAL 2
29913080
2992 typedef struct _UNWIND_HISTORY_TABLE {
2993 ULONG Count;
2994 BYTE LocalHint;
2995 BYTE GlobalHint;
2996 BYTE Search;
2997 BYTE Once;
2998 ULONG64 LowAddress;
2999 ULONG64 HighAddress;
3000 UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
3001 } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
3002
3003 /* http://msdn.microsoft.com/en-us/library/b6sf5kbd(VS.80).aspx */3081 /* http://msdn.microsoft.com/en-us/library/b6sf5kbd(VS.80).aspx */
30043082
3005 struct _DISPATCHER_CONTEXT;3083 struct _DISPATCHER_CONTEXT;
...@@ -3016,11 +3094,31 @@ __buildmemorybarrier()...@@ -3016,11 +3094,31 @@ __buildmemorybarrier()
3016 PEXCEPTION_ROUTINE LanguageHandler;3094 PEXCEPTION_ROUTINE LanguageHandler;
3017 PVOID HandlerData;3095 PVOID HandlerData;
3018 /* http://www.nynaeve.net/?p=99 */3096 /* http://www.nynaeve.net/?p=99 */
3019 PUNWIND_HISTORY_TABLE HistoryTable;3097 struct _UNWIND_HISTORY_TABLE *HistoryTable;
3020 ULONG ScopeIndex;3098 ULONG ScopeIndex;
3021 ULONG Fill0;3099 ULONG Fill0;
3022 };3100 };
30233101
3102#ifdef _ARM64EC_
3103 typedef struct _DISPATCHER_CONTEXT_ARM64EC {
3104 DWORD64 ControlPc;
3105 DWORD64 ImageBase;
3106 PRUNTIME_FUNCTION FunctionEntry;
3107 DWORD64 EstablisherFrame;
3108 union {
3109 DWORD64 TargetIp;
3110 DWORD64 TargetPc;
3111 } DUMMYUNIONNAME;
3112 PCONTEXT ContextRecord;
3113 PEXCEPTION_ROUTINE LanguageHandler;
3114 PVOID HandlerData;
3115 struct _UNWIND_HISTORY_TABLE *HistoryTable;
3116 DWORD ScopeIndex;
3117 BOOLEAN ControlPcIsUnwound;
3118 PBYTE NonVolatileRegisters;
3119 } DISPATCHER_CONTEXT_ARM64EC, *PDISPATCHER_CONTEXT_ARM64EC;
3120#endif /* _ARM64EC_ */
3121
3024 /* http://msdn.microsoft.com/en-us/library/ms680617(VS.85).aspx */3122 /* http://msdn.microsoft.com/en-us/library/ms680617(VS.85).aspx */
30253123
3026 typedef struct _KNONVOLATILE_CONTEXT_POINTERS3124 typedef struct _KNONVOLATILE_CONTEXT_POINTERS
...@@ -5359,7 +5457,7 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)...@@ -5359,7 +5457,7 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
5359#define LTP_PC_SMT 0x15457#define LTP_PC_SMT 0x1
53605458
5361 typedef enum _PROCESSOR_CACHE_TYPE {5459 typedef enum _PROCESSOR_CACHE_TYPE {
5362 CacheUnified,CacheInstruction,CacheData,CacheTrace5460 CacheUnified,CacheInstruction,CacheData,CacheTrace,CacheUnknown
5363 } PROCESSOR_CACHE_TYPE;5461 } PROCESSOR_CACHE_TYPE;
53645462
5365#define CACHE_FULLY_ASSOCIATIVE 0xFF5463#define CACHE_FULLY_ASSOCIATIVE 0xFF
...@@ -5397,8 +5495,12 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)...@@ -5397,8 +5495,12 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
53975495
5398 typedef struct _NUMA_NODE_RELATIONSHIP {5496 typedef struct _NUMA_NODE_RELATIONSHIP {
5399 DWORD NodeNumber;5497 DWORD NodeNumber;
5400 BYTE Reserved[20];5498 BYTE Reserved[18];
5401 GROUP_AFFINITY GroupMask;5499 WORD GroupCount;
5500 __C89_NAMELESS union {
5501 GROUP_AFFINITY GroupMask;
5502 GROUP_AFFINITY GroupMasks[ANYSIZE_ARRAY];
5503 };
5402 } NUMA_NODE_RELATIONSHIP,*PNUMA_NODE_RELATIONSHIP;5504 } NUMA_NODE_RELATIONSHIP,*PNUMA_NODE_RELATIONSHIP;
54035505
5404 typedef struct _CACHE_RELATIONSHIP {5506 typedef struct _CACHE_RELATIONSHIP {
...@@ -5407,8 +5509,12 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)...@@ -5407,8 +5509,12 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
5407 WORD LineSize;5509 WORD LineSize;
5408 DWORD CacheSize;5510 DWORD CacheSize;
5409 PROCESSOR_CACHE_TYPE Type;5511 PROCESSOR_CACHE_TYPE Type;
5410 BYTE Reserved[20];5512 BYTE Reserved[18];
5411 GROUP_AFFINITY GroupMask;5513 WORD GroupCount;
5514 __C89_NAMELESS union {
5515 GROUP_AFFINITY GroupMask;
5516 GROUP_AFFINITY GroupMasks[ANYSIZE_ARRAY];
5517 };
5412 } CACHE_RELATIONSHIP,*PCACHE_RELATIONSHIP;5518 } CACHE_RELATIONSHIP,*PCACHE_RELATIONSHIP;
54135519
5414 typedef struct _PROCESSOR_GROUP_INFO {5520 typedef struct _PROCESSOR_GROUP_INFO {
...@@ -8535,6 +8641,13 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)...@@ -8535,6 +8641,13 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
8535 DWORD Reserved;8641 DWORD Reserved;
8536 } IMAGE_RESOURCE_DATA_ENTRY,*PIMAGE_RESOURCE_DATA_ENTRY;8642 } IMAGE_RESOURCE_DATA_ENTRY,*PIMAGE_RESOURCE_DATA_ENTRY;
85378643
8644 typedef struct _IMAGE_LOAD_CONFIG_CODE_INTEGRITY {
8645 WORD Flags;
8646 WORD Catalog;
8647 DWORD CatalogOffset;
8648 DWORD Reserved;
8649 } IMAGE_LOAD_CONFIG_CODE_INTEGRITY,*PIMAGE_LOAD_CONFIG_CODE_INTEGRITY;
8650
8538 typedef struct {8651 typedef struct {
8539 DWORD Size;8652 DWORD Size;
8540 DWORD TimeDateStamp;8653 DWORD TimeDateStamp;
...@@ -8551,11 +8664,40 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)...@@ -8551,11 +8664,40 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
8551 DWORD ProcessHeapFlags;8664 DWORD ProcessHeapFlags;
8552 DWORD ProcessAffinityMask;8665 DWORD ProcessAffinityMask;
8553 WORD CSDVersion;8666 WORD CSDVersion;
8554 WORD Reserved1;8667 WORD DependentLoadFlags;
8555 DWORD EditList;8668 DWORD EditList;
8556 DWORD SecurityCookie;8669 DWORD SecurityCookie;
8557 DWORD SEHandlerTable;8670 DWORD SEHandlerTable;
8558 DWORD SEHandlerCount;8671 DWORD SEHandlerCount;
8672 DWORD GuardCFCheckFunctionPointer;
8673 DWORD GuardCFDispatchFunctionPointer;
8674 DWORD GuardCFFunctionTable;
8675 DWORD GuardCFFunctionCount;
8676 DWORD GuardFlags;
8677 IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity;
8678 DWORD GuardAddressTakenIatEntryTable;
8679 DWORD GuardAddressTakenIatEntryCount;
8680 DWORD GuardLongJumpTargetTable;
8681 DWORD GuardLongJumpTargetCount;
8682 DWORD DynamicValueRelocTable;
8683 DWORD CHPEMetadataPointer;
8684 DWORD GuardRFFailureRoutine;
8685 DWORD GuardRFFailureRoutineFunctionPointer;
8686 DWORD DynamicValueRelocTableOffset;
8687 WORD DynamicValueRelocTableSection;
8688 WORD Reserved2;
8689 DWORD GuardRFVerifyStackPointerFunctionPointer;
8690 DWORD HotPatchTableOffset;
8691 DWORD Reserved3;
8692 DWORD EnclaveConfigurationPointer;
8693 DWORD VolatileMetadataPointer;
8694 DWORD GuardEHContinuationTable;
8695 DWORD GuardEHContinuationCount;
8696 DWORD GuardXFGCheckFunctionPointer;
8697 DWORD GuardXFGDispatchFunctionPointer;
8698 DWORD GuardXFGTableDispatchFunctionPointer;
8699 DWORD CastGuardOsDeterminedFailureMode;
8700 DWORD GuardMemcpyFunctionPointer;
8559 } IMAGE_LOAD_CONFIG_DIRECTORY32,*PIMAGE_LOAD_CONFIG_DIRECTORY32;8701 } IMAGE_LOAD_CONFIG_DIRECTORY32,*PIMAGE_LOAD_CONFIG_DIRECTORY32;
85608702
8561 typedef struct {8703 typedef struct {
...@@ -8574,11 +8716,40 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)...@@ -8574,11 +8716,40 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
8574 ULONGLONG ProcessAffinityMask;8716 ULONGLONG ProcessAffinityMask;
8575 DWORD ProcessHeapFlags;8717 DWORD ProcessHeapFlags;
8576 WORD CSDVersion;8718 WORD CSDVersion;
8577 WORD Reserved1;8719 WORD DependentLoadFlags;
8578 ULONGLONG EditList;8720 ULONGLONG EditList;
8579 ULONGLONG SecurityCookie;8721 ULONGLONG SecurityCookie;
8580 ULONGLONG SEHandlerTable;8722 ULONGLONG SEHandlerTable;
8581 ULONGLONG SEHandlerCount;8723 ULONGLONG SEHandlerCount;
8724 ULONGLONG GuardCFCheckFunctionPointer;
8725 ULONGLONG GuardCFDispatchFunctionPointer;
8726 ULONGLONG GuardCFFunctionTable;
8727 ULONGLONG GuardCFFunctionCount;
8728 DWORD GuardFlags;
8729 IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity;
8730 ULONGLONG GuardAddressTakenIatEntryTable;
8731 ULONGLONG GuardAddressTakenIatEntryCount;
8732 ULONGLONG GuardLongJumpTargetTable;
8733 ULONGLONG GuardLongJumpTargetCount;
8734 ULONGLONG DynamicValueRelocTable;
8735 ULONGLONG CHPEMetadataPointer;
8736 ULONGLONG GuardRFFailureRoutine;
8737 ULONGLONG GuardRFFailureRoutineFunctionPointer;
8738 DWORD DynamicValueRelocTableOffset;
8739 WORD DynamicValueRelocTableSection;
8740 WORD Reserved2;
8741 ULONGLONG GuardRFVerifyStackPointerFunctionPointer;
8742 DWORD HotPatchTableOffset;
8743 DWORD Reserved3;
8744 ULONGLONG EnclaveConfigurationPointer;
8745 ULONGLONG VolatileMetadataPointer;
8746 ULONGLONG GuardEHContinuationTable;
8747 ULONGLONG GuardEHContinuationCount;
8748 ULONGLONG GuardXFGCheckFunctionPointer;
8749 ULONGLONG GuardXFGDispatchFunctionPointer;
8750 ULONGLONG GuardXFGTableDispatchFunctionPointer;
8751 ULONGLONG CastGuardOsDeterminedFailureMode;
8752 ULONGLONG GuardMemcpyFunctionPointer;
8582 } IMAGE_LOAD_CONFIG_DIRECTORY64,*PIMAGE_LOAD_CONFIG_DIRECTORY64;8753 } IMAGE_LOAD_CONFIG_DIRECTORY64,*PIMAGE_LOAD_CONFIG_DIRECTORY64;
85838754
8584#ifdef _WIN648755#ifdef _WIN64
...@@ -8886,6 +9057,27 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)...@@ -8886,6 +9057,27 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
8886 } IMAGE_COR20_HEADER,*PIMAGE_COR20_HEADER;9057 } IMAGE_COR20_HEADER,*PIMAGE_COR20_HEADER;
8887#endif9058#endif
88889059
9060#ifndef __i386__
9061
9062#define UNWIND_HISTORY_TABLE_SIZE 12
9063
9064 typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
9065 ULONG_PTR ImageBase;
9066 PRUNTIME_FUNCTION FunctionEntry;
9067 } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
9068
9069 typedef struct _UNWIND_HISTORY_TABLE {
9070 DWORD Count;
9071 BYTE LocalHint;
9072 BYTE GlobalHint;
9073 BYTE Search;
9074 BYTE Once;
9075 ULONG_PTR LowAddress;
9076 ULONG_PTR HighAddress;
9077 UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
9078 } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
9079#endif /* !__i386__ */
9080
8889#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)9081#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
8890 NTSYSAPI WORD NTAPI RtlCaptureStackBackTrace (DWORD FramesToSkip, DWORD FramesToCapture, PVOID *BackTrace, PDWORD BackTraceHash);9082 NTSYSAPI WORD NTAPI RtlCaptureStackBackTrace (DWORD FramesToSkip, DWORD FramesToCapture, PVOID *BackTrace, PDWORD BackTraceHash);
8891#endif9083#endif
...@@ -8939,6 +9131,7 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)...@@ -8939,6 +9131,7 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
8939 NTSYSAPI PRUNTIME_FUNCTION NTAPI RtlLookupFunctionEntry (DWORD64 ControlPc, PDWORD64 ImageBase, PUNWIND_HISTORY_TABLE HistoryTable);9131 NTSYSAPI PRUNTIME_FUNCTION NTAPI RtlLookupFunctionEntry (DWORD64 ControlPc, PDWORD64 ImageBase, PUNWIND_HISTORY_TABLE HistoryTable);
8940 NTSYSAPI VOID NTAPI RtlUnwindEx (PVOID TargetFrame, PVOID TargetIp, PEXCEPTION_RECORD ExceptionRecord, PVOID ReturnValue, PCONTEXT ContextRecord, PUNWIND_HISTORY_TABLE HistoryTable);9132 NTSYSAPI VOID NTAPI RtlUnwindEx (PVOID TargetFrame, PVOID TargetIp, PEXCEPTION_RECORD ExceptionRecord, PVOID ReturnValue, PCONTEXT ContextRecord, PUNWIND_HISTORY_TABLE HistoryTable);
8941 NTSYSAPI PEXCEPTION_ROUTINE NTAPI RtlVirtualUnwind (DWORD HandlerType, DWORD64 ImageBase, DWORD64 ControlPc, PRUNTIME_FUNCTION FunctionEntry, PCONTEXT ContextRecord, PVOID *HandlerData, PDWORD64 EstablisherFrame, PKNONVOLATILE_CONTEXT_POINTERS ContextPointers);9133 NTSYSAPI PEXCEPTION_ROUTINE NTAPI RtlVirtualUnwind (DWORD HandlerType, DWORD64 ImageBase, DWORD64 ControlPc, PRUNTIME_FUNCTION FunctionEntry, PCONTEXT ContextRecord, PVOID *HandlerData, PDWORD64 EstablisherFrame, PKNONVOLATILE_CONTEXT_POINTERS ContextPointers);
9134 NTSYSAPI BOOLEAN NTAPI RtlIsEcCode(DWORD64 CodePointer);
8942#endif9135#endif
8943#if defined (__arm__)9136#if defined (__arm__)
8944 NTSYSAPI PRUNTIME_FUNCTION NTAPI RtlLookupFunctionEntry (ULONG_PTR ControlPc, PDWORD ImageBase, PUNWIND_HISTORY_TABLE HistoryTable);9137 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 *);...@@ -9067,7 +9260,7 @@ typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *);
9067#if !defined (__CRT__NO_INLINE) && !defined (__WIDL__)9260#if !defined (__CRT__NO_INLINE) && !defined (__WIDL__)
9068 __CRT_INLINE PVOID WINAPI RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt) {9261 __CRT_INLINE PVOID WINAPI RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt) {
9069 volatile char *vptr =(volatile char *)ptr;9262 volatile char *vptr =(volatile char *)ptr;
9070#ifdef __x86_649263#if defined(__x86_64__) && !defined(__arm64ec__)
9071 __stosb((PBYTE)((DWORD64)vptr),0,cnt);9264 __stosb((PBYTE)((DWORD64)vptr),0,cnt);
9072#else9265#else
9073 while(cnt) {9266 while(cnt) {
...@@ -9652,8 +9845,8 @@ typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *);...@@ -9652,8 +9845,8 @@ typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *);
9652#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)); }9845#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)); }
96539846
9654 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);9847 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);
9655 NTSYSAPI DWORD NTAPI RtlSetHeapInformation(PVOID HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength);9848 NTSYSAPI LONG NTAPI RtlSetHeapInformation(PVOID HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength);
9656 NTSYSAPI DWORD NTAPI RtlQueryHeapInformation(PVOID HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength,PSIZE_T ReturnLength);9849 NTSYSAPI LONG NTAPI RtlQueryHeapInformation(PVOID HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength,PSIZE_T ReturnLength);
9657 DWORD NTAPI RtlMultipleAllocateHeap(PVOID HeapHandle,DWORD Flags,SIZE_T Size,DWORD Count,PVOID *Array);9850 DWORD NTAPI RtlMultipleAllocateHeap(PVOID HeapHandle,DWORD Flags,SIZE_T Size,DWORD Count,PVOID *Array);
9658 DWORD NTAPI RtlMultipleFreeHeap(PVOID HeapHandle,DWORD Flags,DWORD Count,PVOID *Array);9851 DWORD NTAPI RtlMultipleFreeHeap(PVOID HeapHandle,DWORD Flags,DWORD Count,PVOID *Array);
96599852
...@@ -10152,38 +10345,55 @@ typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *);...@@ -10152,38 +10345,55 @@ typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *);
10152 FORCEINLINE VOID TpDestroyCallbackEnviron (PTP_CALLBACK_ENVIRON cbe) { UNREFERENCED_PARAMETER (cbe); }10345 FORCEINLINE VOID TpDestroyCallbackEnviron (PTP_CALLBACK_ENVIRON cbe) { UNREFERENCED_PARAMETER (cbe); }
10153#endif10346#endif
1015410347
10155#if defined(__x86_64) && !defined (__WIDL__)10348#if !defined(__ia64__) && !defined (__WIDL__)
10156 struct _TEB *NtCurrentTeb(VOID);10349 struct _TEB *NtCurrentTeb(VOID);
10157 PVOID GetCurrentFiber(VOID);10350 PVOID GetCurrentFiber(VOID);
10158 PVOID GetFiberData(VOID);10351 PVOID GetFiberData(VOID);
10159 FORCEINLINE struct _TEB *NtCurrentTeb(VOID) { return (struct _TEB *)__readgsqword(FIELD_OFFSET(NT_TIB,Self)); }10352
10160 FORCEINLINE PVOID GetCurrentFiber(VOID) { return(PVOID)__readgsqword(FIELD_OFFSET(NT_TIB,FiberData)); }10353#if defined (__aarch64__) || defined(__arm64ec__)
10161 FORCEINLINE PVOID GetFiberData(VOID) {10354 register struct _TEB *__mingw_current_teb __asm__("x18");
10162 return *(PVOID *)GetCurrentFiber();10355 FORCEINLINE struct _TEB *NtCurrentTeb(VOID)
10356 {
10357 return __mingw_current_teb;
10163 }10358 }
10164#endif /* __x86_64 */10359 FORCEINLINE PVOID GetCurrentFiber(VOID)
10360 {
10361 return (PVOID)(((PNT_TIB)NtCurrentTeb())->FiberData);
10362 }
10363#elif defined(__x86_64__)
10364 FORCEINLINE struct _TEB *NtCurrentTeb(VOID)
10365 {
10366 return (struct _TEB *)__readgsqword(FIELD_OFFSET(NT_TIB,Self));
10367 }
10368 FORCEINLINE PVOID GetCurrentFiber(VOID)
10369 {
10370 return (PVOID)__readgsqword(FIELD_OFFSET(NT_TIB,FiberData));
10371 }
10372#elif defined(__i386__)
10373# define PcTeb 0x18
10374 FORCEINLINE struct _TEB *NtCurrentTeb(void)
10375 {
10376 return (struct _TEB *)__readfsdword(PcTeb);
10377 }
10378 FORCEINLINE PVOID GetCurrentFiber(void)
10379 {
10380 return (PVOID)__readfsdword(0x10);
10381 }
10382#elif defined (__arm__)
10383 FORCEINLINE struct _TEB *NtCurrentTeb(VOID)
10384 {
10385 struct _TEB *teb;
10386 __asm ("mrc p15, 0, %0, c13, c0, 2" : "=r" (teb));
10387 return teb;
10388 }
10389 FORCEINLINE PVOID GetCurrentFiber(VOID)
10390 {
10391 return (PVOID)(((PNT_TIB)NtCurrentTeb())->FiberData);
10392 }
10393#endif
1016510394
10166#if defined (__arm__) && !defined (__WIDL__)10395 FORCEINLINE PVOID GetFiberData (VOID) { return *(void **)GetCurrentFiber (); }
10167 struct _TEB *NtCurrentTeb (VOID);10396#endif /* !defined(__ia64__) && !defined (__WIDL__) */
10168 PVOID GetCurrentFiber (VOID);
10169 PVOID GetFiberData (VOID);
10170 FORCEINLINE struct _TEB *NtCurrentTeb(VOID) { struct _TEB *teb;
10171 __asm ("mrc p15, 0, %0, c13, c0, 2" : "=r" (teb));
10172 return teb; }
10173 FORCEINLINE PVOID GetCurrentFiber(VOID) { return (PVOID)(((PNT_TIB)NtCurrentTeb())->FiberData); }
10174 FORCEINLINE PVOID GetFiberData (VOID) { return *(PVOID *)GetCurrentFiber (); }
10175#endif /* arm */
10176
10177#if defined (__aarch64__) && !defined (__WIDL__)
10178 struct _TEB *NtCurrentTeb (VOID);
10179 PVOID GetCurrentFiber (VOID);
10180 PVOID GetFiberData (VOID);
10181 FORCEINLINE struct _TEB *NtCurrentTeb(VOID) { struct _TEB *teb;
10182 __asm ("mov %0, x18" : "=r" (teb));
10183 return teb; }
10184 FORCEINLINE PVOID GetCurrentFiber(VOID) { return (PVOID)(((PNT_TIB)NtCurrentTeb())->FiberData); }
10185 FORCEINLINE PVOID GetFiberData (VOID) { return *(PVOID *)GetCurrentFiber (); }
10186#endif /* aarch64 */
1018710397
10188#ifndef _NTTMAPI_10398#ifndef _NTTMAPI_
10189#define _NTTMAPI_10399#define _NTTMAPI_
lib/libc/include/any-windows-any/winnt.rh+218
...@@ -16,84 +16,154 @@...@@ -16,84 +16,154 @@
1616
17#define LANG_AFRIKAANS 0x3617#define LANG_AFRIKAANS 0x36
18#define LANG_ALBANIAN 0x1c18#define LANG_ALBANIAN 0x1c
19#define LANG_ALSATIAN 0x84
20#define LANG_AMHARIC 0x5e
19#define LANG_ARABIC 0x0121#define LANG_ARABIC 0x01
20#define LANG_ARMENIAN 0x2b22#define LANG_ARMENIAN 0x2b
21#define LANG_ASSAMESE 0x4d23#define LANG_ASSAMESE 0x4d
22#define LANG_AZERI 0x2c24#define LANG_AZERI 0x2c
25#define LANG_AZERBAIJANI 0x2c
26#define LANG_BANGLA 0x45
27#define LANG_BASHKIR 0x6d
23#define LANG_BASQUE 0x2d28#define LANG_BASQUE 0x2d
24#define LANG_BELARUSIAN 0x2329#define LANG_BELARUSIAN 0x23
25#define LANG_BENGALI 0x4530#define LANG_BENGALI 0x45
31#define LANG_BRETON 0x7e
32#define LANG_BOSNIAN 0x1a
33#define LANG_BOSNIAN_NEUTRAL 0x781a
26#define LANG_BULGARIAN 0x0234#define LANG_BULGARIAN 0x02
27#define LANG_CATALAN 0x0335#define LANG_CATALAN 0x03
36#define LANG_CENTRAL_KURDISH 0x92
37#define LANG_CHEROKEE 0x5c
28#define LANG_CHINESE 0x0438#define LANG_CHINESE 0x04
39#define LANG_CHINESE_SIMPLIFIED 0x04
40#define LANG_CHINESE_TRADITIONAL 0x7c04
41#define LANG_CORSICAN 0x83
29#define LANG_CROATIAN 0x1a42#define LANG_CROATIAN 0x1a
30#define LANG_CZECH 0x0543#define LANG_CZECH 0x05
31#define LANG_DANISH 0x0644#define LANG_DANISH 0x06
45#define LANG_DARI 0x8c
32#define LANG_DIVEHI 0x6546#define LANG_DIVEHI 0x65
33#define LANG_DUTCH 0x1347#define LANG_DUTCH 0x13
34#define LANG_ENGLISH 0x0948#define LANG_ENGLISH 0x09
35#define LANG_ESTONIAN 0x2549#define LANG_ESTONIAN 0x25
36#define LANG_FAEROESE 0x3850#define LANG_FAEROESE 0x38
37#define LANG_FARSI 0x2951#define LANG_FARSI 0x29
52#define LANG_FILIPINO 0x64
38#define LANG_FINNISH 0x0b53#define LANG_FINNISH 0x0b
39#define LANG_FRENCH 0x0c54#define LANG_FRENCH 0x0c
55#define LANG_FRISIAN 0x62
56#define LANG_FULAH 0x67
40#define LANG_GALICIAN 0x5657#define LANG_GALICIAN 0x56
41#define LANG_GEORGIAN 0x3758#define LANG_GEORGIAN 0x37
42#define LANG_GERMAN 0x0759#define LANG_GERMAN 0x07
43#define LANG_GREEK 0x0860#define LANG_GREEK 0x08
61#define LANG_GREENLANDIC 0x6f
44#define LANG_GUJARATI 0x4762#define LANG_GUJARATI 0x47
63#define LANG_HAUSA 0x68
64#define LANG_HAWAIIAN 0x75
45#define LANG_HEBREW 0x0d65#define LANG_HEBREW 0x0d
46#define LANG_HINDI 0x3966#define LANG_HINDI 0x39
47#define LANG_HUNGARIAN 0x0e67#define LANG_HUNGARIAN 0x0e
48#define LANG_ICELANDIC 0x0f68#define LANG_ICELANDIC 0x0f
69#define LANG_IGBO 0x70
49#define LANG_INDONESIAN 0x2170#define LANG_INDONESIAN 0x21
71#define LANG_INUKTITUT 0x5d
72#define LANG_IRISH 0x3c
50#define LANG_ITALIAN 0x1073#define LANG_ITALIAN 0x10
51#define LANG_JAPANESE 0x1174#define LANG_JAPANESE 0x11
52#define LANG_KANNADA 0x4b75#define LANG_KANNADA 0x4b
53#define LANG_KASHMIRI 0x6076#define LANG_KASHMIRI 0x60
54#define LANG_KAZAK 0x3f77#define LANG_KAZAK 0x3f
78#define LANG_KHMER 0x53
79#define LANG_KICHE 0x86
80#define LANG_KINYARWANDA 0x87
55#define LANG_KONKANI 0x5781#define LANG_KONKANI 0x57
56#define LANG_KOREAN 0x1282#define LANG_KOREAN 0x12
57#define LANG_KYRGYZ 0x4083#define LANG_KYRGYZ 0x40
84#define LANG_LAO 0x54
58#define LANG_LATVIAN 0x2685#define LANG_LATVIAN 0x26
59#define LANG_LITHUANIAN 0x2786#define LANG_LITHUANIAN 0x27
87#define LANG_LOWER_SORBIAN 0x2e
88#define LANG_LUXEMBOURGISH 0x6e
60#define LANG_MACEDONIAN 0x2f89#define LANG_MACEDONIAN 0x2f
61#define LANG_MALAY 0x3e90#define LANG_MALAY 0x3e
62#define LANG_MALAYALAM 0x4c91#define LANG_MALAYALAM 0x4c
92#define LANG_MALTESE 0x3a
63#define LANG_MANIPURI 0x5893#define LANG_MANIPURI 0x58
94#define LANG_MAORI 0x81
95#define LANG_MAPUDUNGUN 0x7a
64#define LANG_MARATHI 0x4e96#define LANG_MARATHI 0x4e
97#define LANG_MOHAWK 0x7c
65#define LANG_MONGOLIAN 0x5098#define LANG_MONGOLIAN 0x50
66#define LANG_NEPALI 0x6199#define LANG_NEPALI 0x61
67#define LANG_NORWEGIAN 0x14100#define LANG_NORWEGIAN 0x14
101#define LANG_OCCITAN 0x82
102#define LANG_ODIA 0x48
68#define LANG_ORIYA 0x48103#define LANG_ORIYA 0x48
104#define LANG_PASHTO 0x63
105#define LANG_PERSIAN 0x29
69#define LANG_POLISH 0x15106#define LANG_POLISH 0x15
70#define LANG_PORTUGUESE 0x16107#define LANG_PORTUGUESE 0x16
108#define LANG_PULAR 0x67
71#define LANG_PUNJABI 0x46109#define LANG_PUNJABI 0x46
110#define LANG_QUECHUA 0x6b
72#define LANG_ROMANIAN 0x18111#define LANG_ROMANIAN 0x18
112#define LANG_ROMANSH 0x17
73#define LANG_RUSSIAN 0x19113#define LANG_RUSSIAN 0x19
114#define LANG_SAKHA 0x85
115#define LANG_SAMI 0x3b
74#define LANG_SANSKRIT 0x4f116#define LANG_SANSKRIT 0x4f
117#define LANG_SCOTTISH_GAELIC 0x91
75#define LANG_SERBIAN 0x1a118#define LANG_SERBIAN 0x1a
119#define LANG_SERBIAN_NEUTRAL 0x7c1a
76#define LANG_SINDHI 0x59120#define LANG_SINDHI 0x59
121#define LANG_SINHALESE 0x5b
77#define LANG_SLOVAK 0x1b122#define LANG_SLOVAK 0x1b
78#define LANG_SLOVENIAN 0x24123#define LANG_SLOVENIAN 0x24
124#define LANG_SOTHO 0x6c
79#define LANG_SPANISH 0x0a125#define LANG_SPANISH 0x0a
80#define LANG_SWAHILI 0x41126#define LANG_SWAHILI 0x41
81#define LANG_SWEDISH 0x1d127#define LANG_SWEDISH 0x1d
82#define LANG_SYRIAC 0x5a128#define LANG_SYRIAC 0x5a
129#define LANG_TAJIK 0x28
130#define LANG_TAMAZIGHT 0x5f
83#define LANG_TAMIL 0x49131#define LANG_TAMIL 0x49
84#define LANG_TATAR 0x44132#define LANG_TATAR 0x44
85#define LANG_TELUGU 0x4a133#define LANG_TELUGU 0x4a
86#define LANG_THAI 0x1e134#define LANG_THAI 0x1e
135#define LANG_TIBETAN 0x51
136#define LANG_TIGRIGNA 0x73
137#define LANG_TIGRINYA 0x73
138#define LANG_TSWANA 0x32
87#define LANG_TURKISH 0x1f139#define LANG_TURKISH 0x1f
140#define LANG_TURKMEN 0x42
141#define LANG_UIGHUR 0x80
88#define LANG_UKRAINIAN 0x22142#define LANG_UKRAINIAN 0x22
143#define LANG_UPPER_SORBIAN 0x2e
89#define LANG_URDU 0x20144#define LANG_URDU 0x20
90#define LANG_UZBEK 0x43145#define LANG_UZBEK 0x43
146#define LANG_VALENCIAN 0x03
91#define LANG_VIETNAMESE 0x2a147#define LANG_VIETNAMESE 0x2a
148#define LANG_WELSH 0x52
149#define LANG_WOLOF 0x88
150#define LANG_XHOSA 0x34
151#define LANG_YAKUT 0x85
152#define LANG_YI 0x78
153#define LANG_YORUBA 0x6a
154#define LANG_ZULU 0x35
92155
93#define SUBLANG_NEUTRAL 0x00156#define SUBLANG_NEUTRAL 0x00
94#define SUBLANG_DEFAULT 0x01157#define SUBLANG_DEFAULT 0x01
95#define SUBLANG_SYS_DEFAULT 0x02158#define SUBLANG_SYS_DEFAULT 0x02
159#define SUBLANG_CUSTOM_DEFAULT 0x03
160#define SUBLANG_CUSTOM_UNSPECIFIED 0x04
161#define SUBLANG_UI_CUSTOM_DEFAULT 0x05
96162
163#define SUBLANG_AFRIKAANS_SOUTH_AFRICA 0x01
164#define SUBLANG_ALBANIAN_ALBANIA 0x01
165#define SUBLANG_ALSATIAN_FRANCE 0x01
166#define SUBLANG_AMHARIC_ETHIOPIA 0x01
97#define SUBLANG_ARABIC_SAUDI_ARABIA 0x01167#define SUBLANG_ARABIC_SAUDI_ARABIA 0x01
98#define SUBLANG_ARABIC_IRAQ 0x02168#define SUBLANG_ARABIC_IRAQ 0x02
99#define SUBLANG_ARABIC_EGYPT 0x03169#define SUBLANG_ARABIC_EGYPT 0x03
...@@ -110,13 +180,38 @@...@@ -110,13 +180,38 @@
110#define SUBLANG_ARABIC_UAE 0x0e180#define SUBLANG_ARABIC_UAE 0x0e
111#define SUBLANG_ARABIC_BAHRAIN 0x0f181#define SUBLANG_ARABIC_BAHRAIN 0x0f
112#define SUBLANG_ARABIC_QATAR 0x10182#define SUBLANG_ARABIC_QATAR 0x10
183#define SUBLANG_ARMENIAN_ARMENIA 0x01
184#define SUBLANG_ASSAMESE_INDIA 0x01
113#define SUBLANG_AZERI_LATIN 0x01185#define SUBLANG_AZERI_LATIN 0x01
114#define SUBLANG_AZERI_CYRILLIC 0x02186#define SUBLANG_AZERI_CYRILLIC 0x02
187#define SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN 0x01
188#define SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC 0x02
189#define SUBLANG_BANGLA_INDIA 0x01
190#define SUBLANG_BANGLA_BANGLADESH 0x02
191#define SUBLANG_BASHKIR_RUSSIA 0x01
192#define SUBLANG_BASQUE_BASQUE 0x01
193#define SUBLANG_BELARUSIAN_BELARUS 0x01
194#define SUBLANG_BENGALI_INDIA 0x01
195#define SUBLANG_BENGALI_BANGLADESH 0x02
196#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN 0x05
197#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x08
198#define SUBLANG_BRETON_FRANCE 0x01
199#define SUBLANG_BULGARIAN_BULGARIA 0x01
200#define SUBLANG_CATALAN_CATALAN 0x01
201#define SUBLANG_CENTRAL_KURDISH_IRAQ 0x01
202#define SUBLANG_CHEROKEE_CHEROKEE 0x01
115#define SUBLANG_CHINESE_TRADITIONAL 0x01203#define SUBLANG_CHINESE_TRADITIONAL 0x01
116#define SUBLANG_CHINESE_SIMPLIFIED 0x02204#define SUBLANG_CHINESE_SIMPLIFIED 0x02
117#define SUBLANG_CHINESE_HONGKONG 0x03205#define SUBLANG_CHINESE_HONGKONG 0x03
118#define SUBLANG_CHINESE_SINGAPORE 0x04206#define SUBLANG_CHINESE_SINGAPORE 0x04
119#define SUBLANG_CHINESE_MACAU 0x05207#define SUBLANG_CHINESE_MACAU 0x05
208#define SUBLANG_CORSICAN_FRANCE 0x01
209#define SUBLANG_CZECH_CZECH_REPUBLIC 0x01
210#define SUBLANG_CROATIAN_CROATIA 0x01
211#define SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN 0x04
212#define SUBLANG_DANISH_DENMARK 0x01
213#define SUBLANG_DARI_AFGHANISTAN 0x01
214#define SUBLANG_DIVEHI_MALDIVES 0x01
120#define SUBLANG_DUTCH 0x01215#define SUBLANG_DUTCH 0x01
121#define SUBLANG_DUTCH_BELGIAN 0x02216#define SUBLANG_DUTCH_BELGIAN 0x02
122#define SUBLANG_ENGLISH_US 0x01217#define SUBLANG_ENGLISH_US 0x01
...@@ -132,32 +227,120 @@...@@ -132,32 +227,120 @@
132#define SUBLANG_ENGLISH_TRINIDAD 0x0b227#define SUBLANG_ENGLISH_TRINIDAD 0x0b
133#define SUBLANG_ENGLISH_ZIMBABWE 0x0c228#define SUBLANG_ENGLISH_ZIMBABWE 0x0c
134#define SUBLANG_ENGLISH_PHILIPPINES 0x0d229#define SUBLANG_ENGLISH_PHILIPPINES 0x0d
230#define SUBLANG_ENGLISH_INDIA 0x10
231#define SUBLANG_ENGLISH_MALAYSIA 0x11
232#define SUBLANG_ENGLISH_SINGAPORE 0x12
233#define SUBLANG_ESTONIAN_ESTONIA 0x01
234#define SUBLANG_FAEROESE_FAROE_ISLANDS 0x01
235#define SUBLANG_FILIPINO_PHILIPPINES 0x01
236#define SUBLANG_FINNISH_FINLAND 0x01
135#define SUBLANG_FRENCH 0x01237#define SUBLANG_FRENCH 0x01
136#define SUBLANG_FRENCH_BELGIAN 0x02238#define SUBLANG_FRENCH_BELGIAN 0x02
137#define SUBLANG_FRENCH_CANADIAN 0x03239#define SUBLANG_FRENCH_CANADIAN 0x03
138#define SUBLANG_FRENCH_SWISS 0x04240#define SUBLANG_FRENCH_SWISS 0x04
139#define SUBLANG_FRENCH_LUXEMBOURG 0x05241#define SUBLANG_FRENCH_LUXEMBOURG 0x05
140#define SUBLANG_FRENCH_MONACO 0x06242#define SUBLANG_FRENCH_MONACO 0x06
243#define SUBLANG_FRISIAN_NETHERLANDS 0x01
244#define SUBLANG_FULAH_SENEGAL 0x02
245#define SUBLANG_GALICIAN_GALICIAN 0x01
246#define SUBLANG_GEORGIAN_GEORGIA 0x01
141#define SUBLANG_GERMAN 0x01247#define SUBLANG_GERMAN 0x01
142#define SUBLANG_GERMAN_SWISS 0x02248#define SUBLANG_GERMAN_SWISS 0x02
143#define SUBLANG_GERMAN_AUSTRIAN 0x03249#define SUBLANG_GERMAN_AUSTRIAN 0x03
144#define SUBLANG_GERMAN_LUXEMBOURG 0x04250#define SUBLANG_GERMAN_LUXEMBOURG 0x04
145#define SUBLANG_GERMAN_LIECHTENSTEIN 0x05251#define SUBLANG_GERMAN_LIECHTENSTEIN 0x05
252#define SUBLANG_GREEK_GREECE 0x01
253#define SUBLANG_GREENLANDIC_GREENLAND 0x01
254#define SUBLANG_GUJARATI_INDIA 0x01
255#define SUBLANG_HAUSA_NIGERIA_LATIN 0x01
256#define SUBLANG_HAWAIIAN_US 0x01
257#define SUBLANG_HEBREW_ISRAEL 0x01
258#define SUBLANG_HINDI_INDIA 0x01
259#define SUBLANG_HUNGARIAN_HUNGARY 0x01
260#define SUBLANG_ICELANDIC_ICELAND 0x01
261#define SUBLANG_IGBO_NIGERIA 0x01
262#define SUBLANG_INDONESIAN_INDONESIA 0x01
263#define SUBLANG_INUKTITUT_CANADA 0x01
264#define SUBLANG_INUKTITUT_CANADA_LATIN 0x02
265#define SUBLANG_IRISH_IRELAND 0x02
146#define SUBLANG_ITALIAN 0x01266#define SUBLANG_ITALIAN 0x01
147#define SUBLANG_ITALIAN_SWISS 0x02267#define SUBLANG_ITALIAN_SWISS 0x02
268#define SUBLANG_JAPANESE_JAPAN 0x01
269#define SUBLANG_KANNADA_INDIA 0x01
148#define SUBLANG_KASHMIRI_SASIA 0x02270#define SUBLANG_KASHMIRI_SASIA 0x02
149#define SUBLANG_KASHMIRI_INDIA 0x02271#define SUBLANG_KASHMIRI_INDIA 0x02
272#define SUBLANG_KAZAK_KAZAKHSTAN 0x01
273#define SUBLANG_KHMER_CAMBODIA 0x01
274#define SUBLANG_KICHE_GUATEMALA 0x01
275#define SUBLANG_KINYARWANDA_RWANDA 0x01
276#define SUBLANG_KONKANI_INDIA 0x01
150#define SUBLANG_KOREAN 0x01277#define SUBLANG_KOREAN 0x01
278#define SUBLANG_KYRGYZ_KYRGYZSTAN 0x01
279#define SUBLANG_LAO_LAO 0x01
280#define SUBLANG_LATVIAN_LATVIA 0x01
151#define SUBLANG_LITHUANIAN 0x01281#define SUBLANG_LITHUANIAN 0x01
282#define SUBLANG_LOWER_SORBIAN_GERMANY 0x02
283#define SUBLANG_LUXEMBOURGISH_LUXEMBOURG 0x01
284#define SUBLANG_MACEDONIAN_MACEDONIA 0x01
152#define SUBLANG_MALAY_MALAYSIA 0x01285#define SUBLANG_MALAY_MALAYSIA 0x01
153#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02286#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
287#define SUBLANG_MALAYALAM_INDIA 0x01
288#define SUBLANG_MALTESE_MALTA 0x01
289#define SUBLANG_MAORI_NEW_ZEALAND 0x01
290#define SUBLANG_MAPUDUNGUN_CHILE 0x01
291#define SUBLANG_MARATHI_INDIA 0x01
292#define SUBLANG_MOHAWK_MOHAWK 0x01
293#define SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA 0x01
294#define SUBLANG_MONGOLIAN_PRC 0x02
154#define SUBLANG_NEPALI_INDIA 0x02295#define SUBLANG_NEPALI_INDIA 0x02
296#define SUBLANG_NEPALI_NEPAL 0x01
155#define SUBLANG_NORWEGIAN_BOKMAL 0x01297#define SUBLANG_NORWEGIAN_BOKMAL 0x01
156#define SUBLANG_NORWEGIAN_NYNORSK 0x02298#define SUBLANG_NORWEGIAN_NYNORSK 0x02
299#define SUBLANG_OCCITAN_FRANCE 0x01
300#define SUBLANG_ODIA_INDIA 0x01
301#define SUBLANG_ORIYA_INDIA 0x01
302#define SUBLANG_PASHTO_AFGHANISTAN 0x01
303#define SUBLANG_PERSIAN_IRAN 0x01
304#define SUBLANG_POLISH_POLAND 0x01
157#define SUBLANG_PORTUGUESE 0x02305#define SUBLANG_PORTUGUESE 0x02
158#define SUBLANG_PORTUGUESE_BRAZILIAN 0x01306#define SUBLANG_PORTUGUESE_BRAZILIAN 0x01
307#define SUBLANG_PULAR_SENEGAL 0x02
308#define SUBLANG_PUNJABI_INDIA 0x01
309#define SUBLANG_PUNJABI_PAKISTAN 0x02
310#define SUBLANG_QUECHUA_BOLIVIA 0x01
311#define SUBLANG_QUECHUA_ECUADOR 0x02
312#define SUBLANG_QUECHUA_PERU 0x03
313#define SUBLANG_ROMANIAN_ROMANIA 0x01
314#define SUBLANG_ROMANSH_SWITZERLAND 0x01
315#define SUBLANG_RUSSIAN_RUSSIA 0x01
316#define SUBLANG_SAKHA_RUSSIA 0x01
317#define SUBLANG_SAMI_NORTHERN_NORWAY 0x01
318#define SUBLANG_SAMI_NORTHERN_SWEDEN 0x02
319#define SUBLANG_SAMI_NORTHERN_FINLAND 0x03
320#define SUBLANG_SAMI_LULE_NORWAY 0x04
321#define SUBLANG_SAMI_LULE_SWEDEN 0x05
322#define SUBLANG_SAMI_SOUTHERN_NORWAY 0x06
323#define SUBLANG_SAMI_SOUTHERN_SWEDEN 0x07
324#define SUBLANG_SAMI_SKOLT_FINLAND 0x08
325#define SUBLANG_SAMI_INARI_FINLAND 0x09
326#define SUBLANG_SANSKRIT_INDIA 0x01
327#define SUBLANG_SCOTTISH_GAELIC 0x01
328#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN 0x06
329#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x07
330#define SUBLANG_SERBIAN_MONTENEGRO_LATIN 0x0b
331#define SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC 0x0c
332#define SUBLANG_SERBIAN_SERBIA_LATIN 0x09
333#define SUBLANG_SERBIAN_SERBIA_CYRILLIC 0x0a
334#define SUBLANG_SERBIAN_CROATIA 0x01
159#define SUBLANG_SERBIAN_LATIN 0x02335#define SUBLANG_SERBIAN_LATIN 0x02
160#define SUBLANG_SERBIAN_CYRILLIC 0x03336#define SUBLANG_SERBIAN_CYRILLIC 0x03
337#define SUBLANG_SINDHI_INDIA 0x01
338#define SUBLANG_SINDHI_PAKISTAN 0x02
339#define SUBLANG_SINDHI_AFGHANISTAN 0x02
340#define SUBLANG_SINHALESE_SRI_LANKA 0x01
341#define SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA 0x01
342#define SUBLANG_SLOVAK_SLOVAKIA 0x01
343#define SUBLANG_SLOVENIAN_SLOVENIA 0x01
161#define SUBLANG_SPANISH 0x01344#define SUBLANG_SPANISH 0x01
162#define SUBLANG_SPANISH_MEXICAN 0x02345#define SUBLANG_SPANISH_MEXICAN 0x02
163#define SUBLANG_SPANISH_MODERN 0x03346#define SUBLANG_SPANISH_MODERN 0x03
...@@ -178,23 +361,58 @@...@@ -178,23 +361,58 @@
178#define SUBLANG_SPANISH_HONDURAS 0x12361#define SUBLANG_SPANISH_HONDURAS 0x12
179#define SUBLANG_SPANISH_NICARAGUA 0x13362#define SUBLANG_SPANISH_NICARAGUA 0x13
180#define SUBLANG_SPANISH_PUERTO_RICO 0x14363#define SUBLANG_SPANISH_PUERTO_RICO 0x14
364#define SUBLANG_SPANISH_US 0x15
365#define SUBLANG_SWAHILI_KENYA 0x01
181#define SUBLANG_SWEDISH 0x01366#define SUBLANG_SWEDISH 0x01
182#define SUBLANG_SWEDISH_FINLAND 0x02367#define SUBLANG_SWEDISH_FINLAND 0x02
368#define SUBLANG_SYRIAC_SYRIA 0x01
369#define SUBLANG_TAJIK_TAJIKISTAN 0x01
370#define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02
371#define SUBLANG_TAMAZIGHT_MOROCCO_TIFINAGH 0x04
372#define SUBLANG_TAMIL_INDIA 0x01
373#define SUBLANG_TAMIL_SRI_LANKA 0x02
374#define SUBLANG_TATAR_RUSSIA 0x01
375#define SUBLANG_TELUGU_INDIA 0x01
376#define SUBLANG_THAI_THAILAND 0x01
377#define SUBLANG_TIBETAN_PRC 0x01
378#define SUBLANG_TIGRIGNA_ERITREA 0x02
379#define SUBLANG_TIGRINYA_ERITREA 0x02
380#define SUBLANG_TIGRINYA_ETHIOPIA 0x01
381#define SUBLANG_TSWANA_BOTSWANA 0x02
382#define SUBLANG_TSWANA_SOUTH_AFRICA 0x01
383#define SUBLANG_TURKISH_TURKEY 0x01
384#define SUBLANG_TURKMEN_TURKMENISTAN 0x01
385#define SUBLANG_UIGHUR_PRC 0x01
386#define SUBLANG_UKRAINIAN_UKRAINE 0x01
387#define SUBLANG_UPPER_SORBIAN_GERMANY 0x01
183#define SUBLANG_URDU_PAKISTAN 0x01388#define SUBLANG_URDU_PAKISTAN 0x01
184#define SUBLANG_URDU_INDIA 0x02389#define SUBLANG_URDU_INDIA 0x02
185#define SUBLANG_UZBEK_LATIN 0x01390#define SUBLANG_UZBEK_LATIN 0x01
186#define SUBLANG_UZBEK_CYRILLIC 0x02391#define SUBLANG_UZBEK_CYRILLIC 0x02
392#define SUBLANG_VALENCIAN_VALENCIA 0x02
393#define SUBLANG_VIETNAMESE_VIETNAM 0x01
394#define SUBLANG_WELSH_UNITED_KINGDOM 0x01
395#define SUBLANG_WOLOF_SENEGAL 0x01
396#define SUBLANG_XHOSA_SOUTH_AFRICA 0x01
397#define SUBLANG_YAKUT_RUSSIA 0x01
398#define SUBLANG_YI_PRC 0x01
399#define SUBLANG_YORUBA_NIGERIA 0x01
400#define SUBLANG_ZULU_SOUTH_AFRICA 0x01
187401
188#define SORT_DEFAULT 0x0402#define SORT_DEFAULT 0x0
189403
404#define SORT_INVARIANT_MATH 0x1
405
190#define SORT_JAPANESE_XJIS 0x0406#define SORT_JAPANESE_XJIS 0x0
191#define SORT_JAPANESE_UNICODE 0x1407#define SORT_JAPANESE_UNICODE 0x1
408#define SORT_JAPANESE_RADICALSTROKE 0x4
192409
193#define SORT_CHINESE_BIG5 0x0410#define SORT_CHINESE_BIG5 0x0
194#define SORT_CHINESE_PRCP 0x0411#define SORT_CHINESE_PRCP 0x0
195#define SORT_CHINESE_UNICODE 0x1412#define SORT_CHINESE_UNICODE 0x1
196#define SORT_CHINESE_PRC 0x2413#define SORT_CHINESE_PRC 0x2
197#define SORT_CHINESE_BOPOMOFO 0x3414#define SORT_CHINESE_BOPOMOFO 0x3
415#define SORT_CHINESE_RADICALSTROKE 0x4
198416
199#define SORT_KOREAN_KSC 0x0417#define SORT_KOREAN_KSC 0x0
200#define SORT_KOREAN_UNICODE 0x1418#define SORT_KOREAN_UNICODE 0x1
lib/libc/include/any-windows-any/wmcodecdsp.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wmcodecdsp.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wmcodecdsp.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmcontainer.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wmcontainer.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wmcontainer.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmdrmsdk.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wmdrmsdk.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wmdrmsdk.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmp.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wmp.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wmp.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmprealestate.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wmprealestate.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wmprealestate.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmpservices.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wmpservices.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wmpservices.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmsbuffer.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wmsbuffer.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wmsbuffer.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmsdkidl.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wmsdkidl.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wmsdkidl.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmsecure.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wmsecure.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wmsecure.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wpcapi.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wpcapi.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wpcapi.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wsdattachment.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wsdattachment.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wsdattachment.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wsdbase.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wsdbase.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wsdbase.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wsdclient.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wsdclient.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wsdclient.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wsddisco.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wsddisco.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wsddisco.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wsdhost.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wsdhost.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wsdhost.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wsdxml.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wsdxml.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wsdxml.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wsmandisp.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wsmandisp.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wsmandisp.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wtypes.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wtypes.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wtypes.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wtypesbase.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wtypesbase.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wtypesbase.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wuapi.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/wuapi.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/wuapi.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xamlom.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/xamlom.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/xamlom.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xapo.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/xapo.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/xapo.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xaudio2.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/xaudio2.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/xaudio2.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xaudio2fx.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/xaudio2fx.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/xaudio2fx.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xmllite.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/xmllite.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/xmllite.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xpsdigitalsignature.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/xpsdigitalsignature.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/xpsdigitalsignature.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xpsobjectmodel.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/xpsobjectmodel.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/xpsobjectmodel.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xpsobjectmodel_1.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/xpsobjectmodel_1.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/xpsobjectmodel_1.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xpsprint.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/xpsprint.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/xpsprint.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xpsrassvc.h+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1/*** Autogenerated by WIDL 9.20 from include/xpsrassvc.idl - Do not edit ***/1/*** Autogenerated by WIDL 10.0-rc1 from include/xpsrassvc.idl - Do not edit ***/
22
3#ifdef _WIN323#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__4#ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/mingw/crt/cinitexe.c+3-4
...@@ -1,13 +1,12 @@...@@ -1,13 +1,12 @@
1#include <stdio.h>1#include <stdio.h>
2#include <sect_attribs.h>2#include <sect_attribs.h>
3#include <corecrt_startup.h>
34
4#ifdef _MSC_VER5#ifdef _MSC_VER
5#pragma comment(linker, "/merge:.CRT=.rdata")6#pragma comment(linker, "/merge:.CRT=.rdata")
6#endif7#endif
78
8typedef void (__cdecl *_PVFV)(void);9_CRTALLOC(".CRT$XIA") _PIFV __xi_a[] = { NULL };
910_CRTALLOC(".CRT$XIZ") _PIFV __xi_z[] = { NULL };
10_CRTALLOC(".CRT$XIA") _PVFV __xi_a[] = { NULL };
11_CRTALLOC(".CRT$XIZ") _PVFV __xi_z[] = { NULL };
12_CRTALLOC(".CRT$XCA") _PVFV __xc_a[] = { NULL };11_CRTALLOC(".CRT$XCA") _PVFV __xc_a[] = { NULL };
13_CRTALLOC(".CRT$XCZ") _PVFV __xc_z[] = { NULL };12_CRTALLOC(".CRT$XCZ") _PVFV __xc_z[] = { NULL };
lib/libc/mingw/crt/crt_handler.c-4
...@@ -51,10 +51,6 @@ __mingw_init_ehandler (void)...@@ -51,10 +51,6 @@ __mingw_init_ehandler (void)
51 if (_FindPESectionByName (".pdata") != NULL)51 if (_FindPESectionByName (".pdata") != NULL)
52 return 1;52 return 1;
5353
54 /* Allocate # of e tables and entries. */
55 memset (emu_pdata, 0, sizeof (RUNTIME_FUNCTION) * MAX_PDATA_ENTRIES);
56 memset (emu_xdata, 0, sizeof (UNWIND_INFO) * MAX_PDATA_ENTRIES);
57
58 e = 0;54 e = 0;
59 /* Fill tables and entries. */55 /* Fill tables and entries. */
60 while (e < MAX_PDATA_ENTRIES && (pSec = _FindPESectionExec (e)) != NULL)56 while (e < MAX_PDATA_ENTRIES && (pSec = _FindPESectionExec (e)) != NULL)
lib/libc/mingw/crt/crtdll.c+14-7
...@@ -97,7 +97,8 @@ WINBOOL WINAPI _CRT_INIT (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)...@@ -97,7 +97,8 @@ WINBOOL WINAPI _CRT_INIT (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
97 {97 {
98 __native_startup_state = __initializing;98 __native_startup_state = __initializing;
99 99
100 _initterm ((_PVFV *) (void *) __xi_a, (_PVFV *) (void *) __xi_z);100 if (_initterm_e (__xi_a, __xi_z) != 0)
101 return FALSE;
101 }102 }
102 if (__native_startup_state == __initializing)103 if (__native_startup_state == __initializing)
103 {104 {
...@@ -147,15 +148,15 @@ WINBOOL WINAPI...@@ -147,15 +148,15 @@ WINBOOL WINAPI
147DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)148DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
148{149{
149 __mingw_app_type = 0;150 __mingw_app_type = 0;
150 if (dwReason == DLL_PROCESS_ATTACH)
151 {
152#if defined(__x86_64__) && !defined(__SEH__)
153 __mingw_init_ehandler ();
154#endif
155 }
156 return __DllMainCRTStartup (hDllHandle, dwReason, lpreserved);151 return __DllMainCRTStartup (hDllHandle, dwReason, lpreserved);
157}152}
158153
154static
155#if defined(__i386__) || defined(_X86_)
156/* We need to make sure that we align the stack to 16 bytes for the sake of SSE
157 opts in DllMain/DllEntryPoint or in functions called from DllMain/DllEntryPoint. */
158__attribute__((force_align_arg_pointer))
159#endif
159__declspec(noinline) WINBOOL160__declspec(noinline) WINBOOL
160__DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)161__DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
161{162{
...@@ -168,6 +169,12 @@ __DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)...@@ -168,6 +169,12 @@ __DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
168 goto i__leave;169 goto i__leave;
169 }170 }
170 _pei386_runtime_relocator ();171 _pei386_runtime_relocator ();
172
173#if defined(__x86_64__) && !defined(__SEH__)
174 if (dwReason == DLL_PROCESS_ATTACH)
175 __mingw_init_ehandler ();
176#endif
177
171 if (dwReason == DLL_PROCESS_ATTACH || dwReason == DLL_THREAD_ATTACH)178 if (dwReason == DLL_PROCESS_ATTACH || dwReason == DLL_THREAD_ATTACH)
172 {179 {
173 retcode = _CRT_INIT (hDllHandle, dwReason, lpreserved);180 retcode = _CRT_INIT (hDllHandle, dwReason, lpreserved);
lib/libc/mingw/crt/crtexe.c+13-6
...@@ -58,11 +58,9 @@ extern void __main(void);...@@ -58,11 +58,9 @@ extern void __main(void);
58static _TCHAR **argv;58static _TCHAR **argv;
59static _TCHAR **envp;59static _TCHAR **envp;
6060
61static int argret;
62static int mainret=0;61static int mainret=0;
63static int managedapp;62static int managedapp;
64static int has_cctor = 0;63static int has_cctor = 0;
65static _startupinfo startinfo;
66extern LPTOP_LEVEL_EXCEPTION_FILTER __mingw_oldexcpt_handler;64extern LPTOP_LEVEL_EXCEPTION_FILTER __mingw_oldexcpt_handler;
6765
68extern void _pei386_runtime_relocator (void);66extern void _pei386_runtime_relocator (void);
...@@ -97,6 +95,7 @@ __mingw_invalidParameterHandler (const wchar_t * __UNUSED_PARAM_1(expression),...@@ -97,6 +95,7 @@ __mingw_invalidParameterHandler (const wchar_t * __UNUSED_PARAM_1(expression),
97static int __cdecl95static int __cdecl
98pre_c_init (void)96pre_c_init (void)
99{97{
98 int ret;
100 managedapp = check_managed_app ();99 managedapp = check_managed_app ();
101 if (__mingw_app_type)100 if (__mingw_app_type)
102 __set_app_type(_GUI_APP);101 __set_app_type(_GUI_APP);
...@@ -107,10 +106,12 @@ pre_c_init (void)...@@ -107,10 +106,12 @@ pre_c_init (void)
107 * __p__commode() = _commode;106 * __p__commode() = _commode;
108107
109#ifdef _UNICODE108#ifdef _UNICODE
110 _wsetargv();109 ret = _wsetargv();
111#else110#else
112 _setargv();111 ret = _setargv();
113#endif112#endif
113 if (ret < 0)
114 _amsg_exit(8); /* _RT_SPACEARG */
114 if (_MINGW_INSTALL_DEBUG_MATHERR == 1)115 if (_MINGW_INSTALL_DEBUG_MATHERR == 1)
115 {116 {
116 __setusermatherr (_matherr);117 __setusermatherr (_matherr);
...@@ -125,6 +126,9 @@ pre_c_init (void)...@@ -125,6 +126,9 @@ pre_c_init (void)
125static void __cdecl126static void __cdecl
126pre_cpp_init (void)127pre_cpp_init (void)
127{128{
129 _startupinfo startinfo;
130 int argret;
131
128 startinfo.newmode = _newmode;132 startinfo.newmode = _newmode;
129133
130#ifdef _UNICODE134#ifdef _UNICODE
...@@ -132,6 +136,8 @@ pre_cpp_init (void)...@@ -132,6 +136,8 @@ pre_cpp_init (void)
132#else136#else
133 argret = __getmainargs(&argc,&argv,&envp,_dowildcard,&startinfo);137 argret = __getmainargs(&argc,&argv,&envp,_dowildcard,&startinfo);
134#endif138#endif
139 if (argret < 0)
140 _amsg_exit(8); /* _RT_SPACEARG */
135}141}
136142
137static int __tmainCRTStartup (void);143static int __tmainCRTStartup (void);
...@@ -197,7 +203,7 @@ int mainCRTStartup (void)...@@ -197,7 +203,7 @@ int mainCRTStartup (void)
197static203static
198#if defined(__i386__) || defined(_X86_)204#if defined(__i386__) || defined(_X86_)
199/* We need to make sure that we align the stack to 16 bytes for the sake of SSE205/* We need to make sure that we align the stack to 16 bytes for the sake of SSE
200 opts in main or in functions called main. */206 opts in main or in functions called from main. */
201__attribute__((force_align_arg_pointer))207__attribute__((force_align_arg_pointer))
202#endif208#endif
203__declspec(noinline) int209__declspec(noinline) int
...@@ -223,7 +229,8 @@ __tmainCRTStartup (void)...@@ -223,7 +229,8 @@ __tmainCRTStartup (void)
223 else if (__native_startup_state == __uninitialized)229 else if (__native_startup_state == __uninitialized)
224 {230 {
225 __native_startup_state = __initializing;231 __native_startup_state = __initializing;
226 _initterm ((_PVFV *)(void *)__xi_a, (_PVFV *)(void *) __xi_z);232 if (_initterm_e (__xi_a, __xi_z) != 0)
233 return 255;
227 }234 }
228 else235 else
229 has_cctor = 1;236 has_cctor = 1;
lib/libc/mingw/crt/intrincs/RtlSecureZeroMemory.c deleted-17
...@@ -1,17 +0,0 @@
1#define __CRT__NO_INLINE 1
2#include <windows.h>
3
4PVOID WINAPI RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt)
5{
6 volatile char *vptr = (volatile char *)ptr;
7#ifdef __x86_64
8 __stosb ((PBYTE)((DWORD64)vptr),0,cnt);
9#else
10 while (cnt != 0)
11 {
12 *vptr++ = 0;
13 cnt--;
14 }
15#endif /* __x86_64 */
16 return ptr;
17}
lib/libc/mingw/crt/tlssup.c+1
...@@ -32,6 +32,7 @@ typedef struct TlsDtorNode {...@@ -32,6 +32,7 @@ typedef struct TlsDtorNode {
32 _PVFV funcs[FUNCS_PER_NODE];32 _PVFV funcs[FUNCS_PER_NODE];
33} TlsDtorNode;33} TlsDtorNode;
3434
35__attribute__((used))
35ULONG _tls_index = 0;36ULONG _tls_index = 0;
3637
37/* TLS raw template data start and end. 38/* TLS raw template data start and end.
lib/libc/mingw/def-include/crt-aliases.def.in+14-10
...@@ -231,6 +231,12 @@ ADD_UNDERSCORE(y1)...@@ -231,6 +231,12 @@ ADD_UNDERSCORE(y1)
231ADD_UNDERSCORE(yn)231ADD_UNDERSCORE(yn)
232232
233; This is list of symbol aliases for C95 functions233; This is list of symbol aliases for C95 functions
234#ifdef WITH_GET_PUT_WCHAR_ALIASES
235getwc == fgetwc
236getwchar == _fgetwchar
237putwc == fputwc
238putwchar == _fputwchar
239#endif
234#ifdef USE_WCSTOK_S_FOR_WCSTOK240#ifdef USE_WCSTOK_S_FOR_WCSTOK
235wcstok == wcstok_s241wcstok == wcstok_s
236#endif242#endif
...@@ -531,24 +537,22 @@ __ms_printf == printf...@@ -531,24 +537,22 @@ __ms_printf == printf
531__ms_scanf == scanf537__ms_scanf == scanf
532__ms_sprintf == sprintf538__ms_sprintf == sprintf
533__ms_sscanf == sscanf539__ms_sscanf == sscanf
534#ifdef PRE_C95_SWPRINTF
535__ms_swprintf == swprintf
536#else
537__ms_swprintf == _swprintf
538#endif
539__ms_swscanf == swscanf540__ms_swscanf == swscanf
540__ms_vfprintf == vfprintf541__ms_vfprintf == vfprintf
541__ms_vfwprintf == vfwprintf542__ms_vfwprintf == vfwprintf
542__ms_vprintf == vprintf543__ms_vprintf == vprintf
543__ms_vsprintf == vsprintf544__ms_vsprintf == vsprintf
544#ifdef PRE_C95_SWPRINTF
545__ms_vswprintf == vswprintf
546#else
547__ms_vswprintf == _vswprintf
548#endif
549__ms_vwprintf == vwprintf545__ms_vwprintf == vwprintf
550__ms_wprintf == wprintf546__ms_wprintf == wprintf
551__ms_wscanf == wscanf547__ms_wscanf == wscanf
548#ifdef WITH_MS_VSCANF_ALIASES
549__ms_vfscanf == vfscanf
550__ms_vfwscanf == vfwscanf
551__ms_vscanf == vscanf
552__ms_vsscanf == vsscanf
553__ms_vswscanf == vswscanf
554__ms_vwscanf == vwscanf
555#endif
552#endif556#endif
553557
554; This is list of additional symbol aliases not available in any library as neither native symbols nor aliases558; This is list of additional symbol aliases not available in any library as neither native symbols nor aliases
lib/libc/mingw/include/msvcrt.h+9-4
...@@ -1,10 +1,15 @@...@@ -1,10 +1,15 @@
1#include <winbase.h>
2
3#ifndef __LIBMSVCRT_OS__1#ifndef __LIBMSVCRT_OS__
4#error "This file should only be used in libmsvcrt-os.a"2#error "This file should only be used in libmsvcrt-os.a"
5#endif3#endif
64
7static inline HANDLE __mingw_get_msvcrt_handle(void)5#ifndef MSVCRT_H
6#define MSVCRT_H
7
8#include <winbase.h>
9
10static inline HMODULE __mingw_get_msvcrt_handle(void)
8{11{
9 return GetModuleHandleW(L"msvcrt.dll");12 return GetModuleHandleA("msvcrt.dll");
10}13}
14
15#endif
lib/libc/mingw/intrincs/RtlSecureZeroMemory.c created+17
...@@ -0,0 +1,17 @@
1#define __CRT__NO_INLINE 1
2#include <windows.h>
3
4PVOID WINAPI RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt)
5{
6 volatile char *vptr = (volatile char *)ptr;
7#ifdef __x86_64
8 __stosb ((PBYTE)((DWORD64)vptr),0,cnt);
9#else
10 while (cnt != 0)
11 {
12 *vptr++ = 0;
13 cnt--;
14 }
15#endif /* __x86_64 */
16 return ptr;
17}
lib/libc/mingw/lib-common/kernel32.def.in+5
...@@ -25,6 +25,7 @@ AddVectoredContinueHandler...@@ -25,6 +25,7 @@ AddVectoredContinueHandler
25AddVectoredExceptionHandler25AddVectoredExceptionHandler
26AdjustCalendarDate26AdjustCalendarDate
27AllocConsole27AllocConsole
28AllocConsoleWithOptions
28AllocateUserPhysicalPages29AllocateUserPhysicalPages
29AllocateUserPhysicalPagesNuma30AllocateUserPhysicalPagesNuma
30AppPolicyGetClrCompat31AppPolicyGetClrCompat
...@@ -447,6 +448,7 @@ FindVolumeMountPointClose...@@ -447,6 +448,7 @@ FindVolumeMountPointClose
447FlsAlloc448FlsAlloc
448FlsFree449FlsFree
449FlsGetValue450FlsGetValue
451FlsGetValue2
450FlsSetValue452FlsSetValue
451FlushConsoleInputBuffer453FlushConsoleInputBuffer
452FlushFileBuffers454FlushFileBuffers
...@@ -626,6 +628,7 @@ GetFileAttributesW...@@ -626,6 +628,7 @@ GetFileAttributesW
626GetFileBandwidthReservation628GetFileBandwidthReservation
627GetFileInformationByHandle629GetFileInformationByHandle
628GetFileInformationByHandleEx630GetFileInformationByHandleEx
631GetFileInformationByName
629GetFileMUIInfo632GetFileMUIInfo
630GetFileMUIPath633GetFileMUIPath
631GetFileSize634GetFileSize
...@@ -1282,6 +1285,7 @@ ReleaseActCtxWorker...@@ -1282,6 +1285,7 @@ ReleaseActCtxWorker
1282ReleaseMutex1285ReleaseMutex
1283ReleaseMutexWhenCallbackReturns1286ReleaseMutexWhenCallbackReturns
1284ReleasePackageVirtualizationContext1287ReleasePackageVirtualizationContext
1288ReleasePseudoConsole
1285ReleaseSRWLockExclusive1289ReleaseSRWLockExclusive
1286ReleaseSRWLockShared1290ReleaseSRWLockShared
1287ReleaseSemaphore1291ReleaseSemaphore
...@@ -1543,6 +1547,7 @@ Thread32Next...@@ -1543,6 +1547,7 @@ Thread32Next
1543TlsAlloc1547TlsAlloc
1544TlsFree1548TlsFree
1545TlsGetValue1549TlsGetValue
1550TlsGetValue2
1546TlsSetValue1551TlsSetValue
1547Toolhelp32ReadProcessMemory1552Toolhelp32ReadProcessMemory
1548TransactNamedPipe1553TransactNamedPipe
lib/libc/mingw/lib-common/vcruntime140-common.def.in created+89
...@@ -0,0 +1,89 @@
1_CreateFrameInfo
2F_I386(_CxxThrowException@8)
3F_NON_I386(_CxxThrowException)
4F_I386(_EH_prolog)
5_FindAndUnlinkFrame
6_IsExceptionObjectToBeDestroyed
7F_I386(_NLG_Dispatch2@4)
8F_I386(_NLG_Return@12)
9F_I386(_NLG_Return2)
10_SetWinRTOutOfMemoryExceptionCallback
11__AdjustPointer
12__BuildCatchObject
13__BuildCatchObjectHelper
14F_NON_I386(__C_specific_handler)
15F_NON_I386(__C_specific_handler_noexcept)
16__CxxDetectRethrow
17__CxxExceptionFilter
18__CxxFrameHandler
19__CxxFrameHandler2
20__CxxFrameHandler3
21F_I386(__CxxLongjmpUnwind@4)
22__CxxQueryExceptionSize
23__CxxRegisterExceptionObject
24__CxxUnregisterExceptionObject
25__DestructExceptionObject
26__FrameUnwindFilter
27__GetPlatformExceptionInfo
28F_NON_I386(__NLG_Dispatch2)
29F_NON_I386(__NLG_Return2)
30__RTCastToVoid
31__RTDynamicCast
32__RTtypeid
33__TypeMatch
34__current_exception
35__current_exception_context
36F_NON_ARM64(__intrinsic_setjmp)
37F_NON_I386(__intrinsic_setjmpex)
38F_ARM32(__jump_unwind)
39__processing_throw
40__report_gsfailure
41__std_exception_copy
42__std_exception_destroy
43__std_terminate
44__std_type_info_compare
45__std_type_info_destroy_list
46__std_type_info_hash
47__std_type_info_name
48__telemetry_main_invoke_trigger
49__telemetry_main_return_trigger
50__unDName
51__unDNameEx
52__uncaught_exception
53__uncaught_exceptions
54__vcrt_GetModuleFileNameW
55__vcrt_GetModuleHandleW
56__vcrt_InitializeCriticalSectionEx
57__vcrt_LoadLibraryExW
58F_I386(_chkesp)
59F_I386(_except_handler2)
60F_I386(_except_handler3)
61F_I386(_except_handler4_common)
62_get_purecall_handler
63_get_unexpected
64F_I386(_global_unwind2)
65_is_exception_typeof
66F64(_local_unwind)
67F_I386(_local_unwind2)
68F_I386(_local_unwind4)
69F_I386(_longjmpex)
70_purecall
71F_I386(_seh_longjmp_unwind4@4)
72F_I386(_seh_longjmp_unwind@4)
73_set_purecall_handler
74_set_se_translator
75F_I386(_setjmp3)
76longjmp
77memchr
78memcmp
79memcpy
80memmove
81memset
82set_unexpected
83strchr
84strrchr
85strstr
86unexpected
87wcschr
88wcsrchr
89wcsstr
lib/libc/mingw/lib-common/vcruntime140.def.in+1-90
...@@ -2,93 +2,4 @@ LIBRARY "VCRUNTIME140.dll"...@@ -2,93 +2,4 @@ LIBRARY "VCRUNTIME140.dll"
2EXPORTS2EXPORTS
33
4#include "func.def.in"4#include "func.def.in"
55#include "vcruntime140-common.def.in"
6_CreateFrameInfo
7F_I386(_CxxThrowException@8)
8F_NON_I386(_CxxThrowException)
9F_I386(_EH_prolog)
10_FindAndUnlinkFrame
11_IsExceptionObjectToBeDestroyed
12F_I386(_NLG_Dispatch2@4)
13F_I386(_NLG_Return@12)
14F_I386(_NLG_Return2)
15_SetWinRTOutOfMemoryExceptionCallback
16__AdjustPointer
17__BuildCatchObject
18__BuildCatchObjectHelper
19F_NON_I386(__C_specific_handler)
20F_NON_I386(__C_specific_handler_noexcept)
21__CxxDetectRethrow
22__CxxExceptionFilter
23__CxxFrameHandler
24__CxxFrameHandler2
25__CxxFrameHandler3
26F_I386(__CxxLongjmpUnwind@4)
27__CxxQueryExceptionSize
28__CxxRegisterExceptionObject
29__CxxUnregisterExceptionObject
30__DestructExceptionObject
31__FrameUnwindFilter
32__GetPlatformExceptionInfo
33F_NON_I386(__NLG_Dispatch2)
34F_NON_I386(__NLG_Return2)
35__RTCastToVoid
36__RTDynamicCast
37__RTtypeid
38__TypeMatch
39__current_exception
40__current_exception_context
41F_NON_ARM64(__intrinsic_setjmp)
42F_NON_I386(__intrinsic_setjmpex)
43F_ARM32(__jump_unwind)
44__processing_throw
45__report_gsfailure
46__std_exception_copy
47__std_exception_destroy
48__std_terminate
49__std_type_info_compare
50__std_type_info_destroy_list
51__std_type_info_hash
52__std_type_info_name
53__telemetry_main_invoke_trigger
54__telemetry_main_return_trigger
55__unDName
56__unDNameEx
57__uncaught_exception
58__uncaught_exceptions
59__vcrt_GetModuleFileNameW
60__vcrt_GetModuleHandleW
61__vcrt_InitializeCriticalSectionEx
62__vcrt_LoadLibraryExW
63F_I386(_chkesp)
64F_I386(_except_handler2)
65F_I386(_except_handler3)
66F_I386(_except_handler4_common)
67_get_purecall_handler
68_get_unexpected
69F_I386(_global_unwind2)
70_is_exception_typeof
71F64(_local_unwind)
72F_I386(_local_unwind2)
73F_I386(_local_unwind4)
74F_I386(_longjmpex)
75_purecall
76F_I386(_seh_longjmp_unwind4@4)
77F_I386(_seh_longjmp_unwind@4)
78_set_purecall_handler
79_set_se_translator
80F_I386(_setjmp3)
81longjmp
82memchr
83memcmp
84memcpy
85memmove
86memset
87set_unexpected
88strchr
89strrchr
90strstr
91unexpected
92wcschr
93wcsrchr
94wcsstr
lib/libc/mingw/lib-common/vcruntime140_app.def.in+2-92
...@@ -1,95 +1,5 @@...@@ -1,95 +1,5 @@
1LIBRARY vcruntime140_app1LIBRARY "VCRUNTIME140_APP.dll"
2
3EXPORTS2EXPORTS
43
5#include "func.def.in"4#include "func.def.in"
65#include "vcruntime140-common.def.in"
7_CreateFrameInfo
8F_I386(_CxxThrowException@8)
9F_NON_I386(_CxxThrowException)
10F_I386(_EH_prolog)
11_FindAndUnlinkFrame
12_IsExceptionObjectToBeDestroyed
13F_I386(_NLG_Dispatch2)
14F_I386(_NLG_Return)
15F_I386(_NLG_Return2)
16_SetWinRTOutOfMemoryExceptionCallback
17__AdjustPointer
18__BuildCatchObject
19__BuildCatchObjectHelper
20F_NON_I386(__C_specific_handler)
21F_NON_I386(__C_specific_handler_noexcept)
22__CxxDetectRethrow
23__CxxExceptionFilter
24__CxxFrameHandler
25__CxxFrameHandler2
26__CxxFrameHandler3
27F_I386(__CxxLongjmpUnwind@4)
28__CxxQueryExceptionSize
29__CxxRegisterExceptionObject
30__CxxUnregisterExceptionObject
31__DestructExceptionObject
32__FrameUnwindFilter
33__GetPlatformExceptionInfo
34F_NON_I386(__NLG_Dispatch2)
35F_NON_I386(__NLG_Return2)
36__RTCastToVoid
37__RTDynamicCast
38__RTtypeid
39__TypeMatch
40__current_exception
41__current_exception_context
42F_NON_ARM64(__intrinsic_setjmp)
43F_NON_I386(__intrinsic_setjmpex)
44F_ARM32(__jump_unwind)
45__processing_throw
46__report_gsfailure
47__std_exception_copy
48__std_exception_destroy
49__std_terminate
50__std_type_info_compare
51__std_type_info_destroy_list
52__std_type_info_hash
53__std_type_info_name
54__telemetry_main_invoke_trigger
55__telemetry_main_return_trigger
56__unDName
57__unDNameEx
58__uncaught_exception
59__uncaught_exceptions
60__vcrt_GetModuleFileNameW
61__vcrt_GetModuleHandleW
62__vcrt_InitializeCriticalSectionEx
63__vcrt_LoadLibraryExW
64F_I386(_chkesp)
65F_I386(_except_handler2)
66F_I386(_except_handler3)
67F_I386(_except_handler4_common)
68_get_purecall_handler
69_get_unexpected
70F_I386(_global_unwind2)
71_is_exception_typeof
72F_I386(_local_unwind2)
73F_I386(_local_unwind4)
74F_I386(_longjmpex)
75F64(_local_unwind)
76_purecall
77F_I386(_seh_longjmp_unwind4@4)
78F_I386(_seh_longjmp_unwind@4)
79_set_purecall_handler
80_set_se_translator
81F_I386(_setjmp3)
82longjmp
83memchr
84memcmp
85memcpy
86memmove
87memset
88set_unexpected
89strchr
90strrchr
91strstr
92unexpected
93wcschr
94wcsrchr
95wcsstr
lib/libc/mingw/lib-common/vcruntime140d.def.in+1-90
...@@ -2,93 +2,4 @@ LIBRARY "VCRUNTIME140D.dll"...@@ -2,93 +2,4 @@ LIBRARY "VCRUNTIME140D.dll"
2EXPORTS2EXPORTS
33
4#include "func.def.in"4#include "func.def.in"
55#include "vcruntime140-common.def.in"
6_CreateFrameInfo
7F_I386(_CxxThrowException@8)
8F_NON_I386(_CxxThrowException)
9F_I386(_EH_prolog)
10_FindAndUnlinkFrame
11_IsExceptionObjectToBeDestroyed
12F_I386(_NLG_Dispatch2@4)
13F_I386(_NLG_Return@12)
14F_I386(_NLG_Return2)
15_SetWinRTOutOfMemoryExceptionCallback
16__AdjustPointer
17__BuildCatchObject
18__BuildCatchObjectHelper
19F_NON_I386(__C_specific_handler)
20F_NON_I386(__C_specific_handler_noexcept)
21__CxxDetectRethrow
22__CxxExceptionFilter
23__CxxFrameHandler
24__CxxFrameHandler2
25__CxxFrameHandler3
26F_I386(__CxxLongjmpUnwind@4)
27__CxxQueryExceptionSize
28__CxxRegisterExceptionObject
29__CxxUnregisterExceptionObject
30__DestructExceptionObject
31__FrameUnwindFilter
32__GetPlatformExceptionInfo
33F_NON_I386(__NLG_Dispatch2)
34F_NON_I386(__NLG_Return2)
35__RTCastToVoid
36__RTDynamicCast
37__RTtypeid
38__TypeMatch
39__current_exception
40__current_exception_context
41F_NON_ARM64(__intrinsic_setjmp)
42F_NON_I386(__intrinsic_setjmpex)
43F_ARM32(__jump_unwind)
44__processing_throw
45__report_gsfailure
46__std_exception_copy
47__std_exception_destroy
48__std_terminate
49__std_type_info_compare
50__std_type_info_destroy_list
51__std_type_info_hash
52__std_type_info_name
53__telemetry_main_invoke_trigger
54__telemetry_main_return_trigger
55__unDName
56__unDNameEx
57__uncaught_exception
58__uncaught_exceptions
59__vcrt_GetModuleFileNameW
60__vcrt_GetModuleHandleW
61__vcrt_InitializeCriticalSectionEx
62__vcrt_LoadLibraryExW
63F_I386(_chkesp)
64F_I386(_except_handler2)
65F_I386(_except_handler3)
66F_I386(_except_handler4_common)
67_get_purecall_handler
68_get_unexpected
69F_I386(_global_unwind2)
70_is_exception_typeof
71F64(_local_unwind)
72F_I386(_local_unwind2)
73F_I386(_local_unwind4)
74F_I386(_longjmpex)
75_purecall
76F_I386(_seh_longjmp_unwind4@4)
77F_I386(_seh_longjmp_unwind@4)
78_set_purecall_handler
79_set_se_translator
80F_I386(_setjmp3)
81longjmp
82memchr
83memcmp
84memcpy
85memmove
86memset
87set_unexpected
88strchr
89strrchr
90strstr
91unexpected
92wcschr
93wcsrchr
94wcsstr
lib/libc/mingw/lib32/dxva2.def+1
...@@ -8,6 +8,7 @@ EXPORTS...@@ -8,6 +8,7 @@ EXPORTS
8CapabilitiesRequestAndCapabilitiesReply@128CapabilitiesRequestAndCapabilitiesReply@12
9DXVA2CreateDirect3DDeviceManager9@89DXVA2CreateDirect3DDeviceManager9@8
10DXVA2CreateVideoService@1210DXVA2CreateVideoService@12
11DXVAHD_CreateDevice@20
11DegaussMonitor@412DegaussMonitor@4
12DestroyPhysicalMonitor@413DestroyPhysicalMonitor@4
13DestroyPhysicalMonitors@814DestroyPhysicalMonitors@8
lib/libc/mingw/lib32/kernel32.def+6-1
...@@ -30,6 +30,7 @@ AddVectoredContinueHandler@8...@@ -30,6 +30,7 @@ AddVectoredContinueHandler@8
30AddVectoredExceptionHandler@830AddVectoredExceptionHandler@8
31AdjustCalendarDate@1231AdjustCalendarDate@12
32AllocConsole@032AllocConsole@0
33AllocConsoleWithOptions@8
33AllocateUserPhysicalPages@1234AllocateUserPhysicalPages@12
34AllocateUserPhysicalPagesNuma@1635AllocateUserPhysicalPagesNuma@16
35AppPolicyGetClrCompat@836AppPolicyGetClrCompat@8
...@@ -440,6 +441,7 @@ FindVolumeClose@4...@@ -440,6 +441,7 @@ FindVolumeClose@4
440FindVolumeMountPointClose@4441FindVolumeMountPointClose@4
441FlsAlloc@4442FlsAlloc@4
442FlsFree@4443FlsFree@4
444FlsGetValue2@4
443FlsGetValue@4445FlsGetValue@4
444FlsSetValue@8446FlsSetValue@8
445FlushConsoleInputBuffer@4447FlushConsoleInputBuffer@4
...@@ -616,6 +618,7 @@ GetFileAttributesW@4...@@ -616,6 +618,7 @@ GetFileAttributesW@4
616GetFileBandwidthReservation@24618GetFileBandwidthReservation@24
617GetFileInformationByHandle@8619GetFileInformationByHandle@8
618GetFileInformationByHandleEx@16620GetFileInformationByHandleEx@16
621GetFileInformationByName@16
619GetFileMUIInfo@16622GetFileMUIInfo@16
620GetFileMUIPath@28623GetFileMUIPath@28
621GetFileSize@8624GetFileSize@8
...@@ -1270,6 +1273,7 @@ ReleaseActCtxWorker@4...@@ -1270,6 +1273,7 @@ ReleaseActCtxWorker@4
1270ReleaseMutex@41273ReleaseMutex@4
1271ReleaseMutexWhenCallbackReturns@81274ReleaseMutexWhenCallbackReturns@8
1272ReleasePackageVirtualizationContext@41275ReleasePackageVirtualizationContext@4
1276ReleasePseudoConsole@4
1273ReleaseSRWLockExclusive@41277ReleaseSRWLockExclusive@4
1274ReleaseSRWLockShared@41278ReleaseSRWLockShared@4
1275ReleaseSemaphore@121279ReleaseSemaphore@12
...@@ -1518,6 +1522,7 @@ Thread32First@8...@@ -1518,6 +1522,7 @@ Thread32First@8
1518Thread32Next@81522Thread32Next@8
1519TlsAlloc@01523TlsAlloc@0
1520TlsFree@41524TlsFree@4
1525TlsGetValue2@4
1521TlsGetValue@41526TlsGetValue@4
1522TlsSetValue@81527TlsSetValue@8
1523Toolhelp32ReadProcessMemory@201528Toolhelp32ReadProcessMemory@20
...@@ -1605,7 +1610,7 @@ WerRegisterRuntimeExceptionModuleWorker@8...@@ -1605,7 +1610,7 @@ WerRegisterRuntimeExceptionModuleWorker@8
1605WerSetFlags@41610WerSetFlags@4
1606WerSetFlagsWorker@41611WerSetFlagsWorker@4
1607WerUnregisterAdditionalProcess@41612WerUnregisterAdditionalProcess@4
1608WerUnregisterAppLocalDump1613WerUnregisterAppLocalDump@0
1609WerUnregisterCustomMetadata@41614WerUnregisterCustomMetadata@4
1610WerUnregisterExcludedMemoryBlock@41615WerUnregisterExcludedMemoryBlock@4
1611WerUnregisterFile@41616WerUnregisterFile@4
lib/libc/mingw/lib64/kernel32.def+5
...@@ -24,6 +24,7 @@ AddVectoredContinueHandler...@@ -24,6 +24,7 @@ AddVectoredContinueHandler
24AddVectoredExceptionHandler24AddVectoredExceptionHandler
25AdjustCalendarDate25AdjustCalendarDate
26AllocConsole26AllocConsole
27AllocConsoleWithOptions
27AllocateUserPhysicalPages28AllocateUserPhysicalPages
28AllocateUserPhysicalPagesNuma29AllocateUserPhysicalPagesNuma
29AppPolicyGetClrCompat30AppPolicyGetClrCompat
...@@ -446,6 +447,7 @@ FindVolumeMountPointClose...@@ -446,6 +447,7 @@ FindVolumeMountPointClose
446FlsAlloc447FlsAlloc
447FlsFree448FlsFree
448FlsGetValue449FlsGetValue
450FlsGetValue2
449FlsSetValue451FlsSetValue
450FlushConsoleInputBuffer452FlushConsoleInputBuffer
451FlushFileBuffers453FlushFileBuffers
...@@ -625,6 +627,7 @@ GetFileAttributesW...@@ -625,6 +627,7 @@ GetFileAttributesW
625GetFileBandwidthReservation627GetFileBandwidthReservation
626GetFileInformationByHandle628GetFileInformationByHandle
627GetFileInformationByHandleEx629GetFileInformationByHandleEx
630GetFileInformationByName
628GetFileMUIInfo631GetFileMUIInfo
629GetFileMUIPath632GetFileMUIPath
630GetFileSize633GetFileSize
...@@ -1281,6 +1284,7 @@ ReleaseActCtxWorker...@@ -1281,6 +1284,7 @@ ReleaseActCtxWorker
1281ReleaseMutex1284ReleaseMutex
1282ReleaseMutexWhenCallbackReturns1285ReleaseMutexWhenCallbackReturns
1283ReleasePackageVirtualizationContext1286ReleasePackageVirtualizationContext
1287ReleasePseudoConsole
1284ReleaseSRWLockExclusive1288ReleaseSRWLockExclusive
1285ReleaseSRWLockShared1289ReleaseSRWLockShared
1286ReleaseSemaphore1290ReleaseSemaphore
...@@ -1542,6 +1546,7 @@ Thread32Next...@@ -1542,6 +1546,7 @@ Thread32Next
1542TlsAlloc1546TlsAlloc
1543TlsFree1547TlsFree
1544TlsGetValue1548TlsGetValue
1549TlsGetValue2
1545TlsSetValue1550TlsSetValue
1546Toolhelp32ReadProcessMemory1551Toolhelp32ReadProcessMemory
1547TransactNamedPipe1552TransactNamedPipe
lib/libc/mingw/libsrc/wia-uuid.c+1-101
...@@ -1,106 +1,6 @@...@@ -1,106 +1,6 @@
1/* unknwn-uuid.c */1/* unknwn-uuid.c */
2/* Generate GUIDs for WIA interfaces */2/* Generate GUIDs for WIA interfaces */
33
4/* All IIDs defined in this file were extracted from
5 * HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\ */
6
7#define INITGUID4#define INITGUID
8#include <basetyps.h>5#include <basetyps.h>
96#include <wia.h>
10// Image types
11DEFINE_GUID(WiaImgFmt_UNDEFINED,0xb96b3ca9,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
12DEFINE_GUID(WiaImgFmt_RAWRGB,0xbca48b55,0xf272,0x4371,0xb0,0xf1,0x4a,0x15,0x0d,0x05,0x7b,0xb4);
13DEFINE_GUID(WiaImgFmt_MEMORYBMP,0xb96b3caa,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
14DEFINE_GUID(WiaImgFmt_BMP,0xb96b3cab,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
15DEFINE_GUID(WiaImgFmt_EMF,0xb96b3cac,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
16DEFINE_GUID(WiaImgFmt_WMF,0xb96b3cad,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
17DEFINE_GUID(WiaImgFmt_JPEG,0xb96b3cae,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
18DEFINE_GUID(WiaImgFmt_PNG,0xb96b3caf,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
19DEFINE_GUID(WiaImgFmt_GIF,0xb96b3cb0,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
20DEFINE_GUID(WiaImgFmt_TIFF,0xb96b3cb1,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
21DEFINE_GUID(WiaImgFmt_EXIF,0xb96b3cb2,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
22DEFINE_GUID(WiaImgFmt_PHOTOCD,0xb96b3cb3,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
23DEFINE_GUID(WiaImgFmt_FLASHPIX,0xb96b3cb4,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
24DEFINE_GUID(WiaImgFmt_ICO,0xb96b3cb5,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
25DEFINE_GUID(WiaImgFmt_CIFF,0x9821a8ab,0x3a7e,0x4215,0x94,0xe0,0xd2,0x7a,0x46,0x0c,0x03,0xb2);
26DEFINE_GUID(WiaImgFmt_PICT,0xa6bc85d8,0x6b3e,0x40ee,0xa9,0x5c,0x25,0xd4,0x82,0xe4,0x1a,0xdc);
27DEFINE_GUID(WiaImgFmt_JPEG2K,0x344ee2b2,0x39db,0x4dde,0x81,0x73,0xc4,0xb7,0x5f,0x8f,0x1e,0x49);
28DEFINE_GUID(WiaImgFmt_JPEG2KX,0x43e14614,0xc80a,0x4850,0xba,0xf3,0x4b,0x15,0x2d,0xc8,0xda,0x27);
29
30// Document and other types
31DEFINE_GUID(WiaImgFmt_RTF,0x573dd6a3,0x4834,0x432d,0xa9,0xb5,0xe1,0x98,0xdd,0x9e,0x89,0x0d);
32DEFINE_GUID(WiaImgFmt_XML,0xb9171457,0xdac8,0x4884,0xb3,0x93,0x15,0xb4,0x71,0xd5,0xf0,0x7e);
33DEFINE_GUID(WiaImgFmt_HTML,0xc99a4e62,0x99de,0x4a94,0xac,0xca,0x71,0x95,0x6a,0xc2,0x97,0x7d);
34DEFINE_GUID(WiaImgFmt_TXT,0xfafd4d82,0x723f,0x421f,0x93,0x18,0x30,0x50,0x1a,0xc4,0x4b,0x59);
35DEFINE_GUID(WiaImgFmt_MPG,0xecd757e4,0xd2ec,0x4f57,0x95,0x5d,0xbc,0xf8,0xa9,0x7c,0x4e,0x52);
36DEFINE_GUID(WiaImgFmt_AVI,0x32f8ca14,0x087c,0x4908,0xb7,0xc4,0x67,0x57,0xfe,0x7e,0x90,0xab);
37DEFINE_GUID(WiaImgFmt_ASF,0x8d948ee9,0xd0aa,0x4a12,0x9d,0x9a,0x9c,0xc5,0xde,0x36,0x19,0x9b);
38DEFINE_GUID(WiaImgFmt_SCRIPT,0xfe7d6c53,0x2dac,0x446a,0xb0,0xbd,0xd7,0x3e,0x21,0xe9,0x24,0xc9);
39DEFINE_GUID(WiaImgFmt_EXEC,0x485da097,0x141e,0x4aa5,0xbb,0x3b,0xa5,0x61,0x8d,0x95,0xd0,0x2b);
40DEFINE_GUID(WiaImgFmt_UNICODE16,0x1b7639b6,0x6357,0x47d1,0x9a,0x07,0x12,0x45,0x2d,0xc0,0x73,0xe9);
41DEFINE_GUID(WiaImgFmt_DPOF,0x369eeeab,0xa0e8,0x45ca,0x86,0xa6,0xa8,0x3c,0xe5,0x69,0x7e,0x28);
42
43// Audio types
44DEFINE_GUID(WiaAudFmt_WAV,0xf818e146,0x07af,0x40ff,0xae,0x55,0xbe,0x8f,0x2c,0x06,0x5d,0xbe);
45DEFINE_GUID(WiaAudFmt_MP3,0x0fbc71fb,0x43bf,0x49f2,0x91,0x90,0xe6,0xfe,0xcf,0xf3,0x7e,0x54);
46DEFINE_GUID(WiaAudFmt_AIFF,0x66e2bf4f,0xb6fc,0x443f,0x94,0xc8,0x2f,0x33,0xc8,0xa6,0x5a,0xaf);
47DEFINE_GUID(WiaAudFmt_WMA,0xd61d6413,0x8bc2,0x438f,0x93,0xad,0x21,0xbd,0x48,0x4d,0xb6,0xa1);
48
49// Event GUIDs
50DEFINE_GUID(WIA_EVENT_DEVICE_DISCONNECTED,0x143e4e83,0x6497,0x11d2,0xa2,0x31,0x00,0xc0,0x4f,0xa3,0x18,0x09);
51DEFINE_GUID(WIA_EVENT_DEVICE_CONNECTED,0xa28bbade,0x64b6,0x11d2,0xa2,0x31,0x00,0xc0,0x4f,0xa3,0x18,0x09);
52DEFINE_GUID(WIA_EVENT_ITEM_DELETED,0x1d22a559,0xe14f,0x11d2,0xb3,0x26,0x00,0xc0,0x4f,0x68,0xce,0x61);
53DEFINE_GUID(WIA_EVENT_ITEM_CREATED,0x4c8f4ef5,0xe14f,0x11d2,0xb3,0x26,0x00,0xc0,0x4f,0x68,0xce,0x61);
54DEFINE_GUID(WIA_EVENT_TREE_UPDATED,0xc9859b91,0x4ab2,0x4cd6,0xa1,0xfc,0x58,0x2e,0xec,0x55,0xe5,0x85);
55DEFINE_GUID(WIA_EVENT_VOLUME_INSERT,0x9638bbfd,0xd1bd,0x11d2,0xb3,0x1f,0x00,0xc0,0x4f,0x68,0xce,0x61);
56DEFINE_GUID(WIA_EVENT_SCAN_IMAGE,0xa6c5a715,0x8c6e,0x11d2,0x97,0x7a,0x00,0x00,0xf8,0x7a,0x92,0x6f);
57DEFINE_GUID(WIA_EVENT_SCAN_PRINT_IMAGE,0xb441f425,0x8c6e,0x11d2,0x97,0x7a,0x00,0x00,0xf8,0x7a,0x92,0x6f);
58DEFINE_GUID(WIA_EVENT_SCAN_FAX_IMAGE,0xc00eb793,0x8c6e,0x11d2,0x97,0x7a,0x00,0x00,0xf8,0x7a,0x92,0x6f);
59DEFINE_GUID(WIA_EVENT_SCAN_OCR_IMAGE,0x9d095b89,0x37d6,0x4877,0xaf,0xed,0x62,0xa2,0x97,0xdc,0x6d,0xbe);
60DEFINE_GUID(WIA_EVENT_SCAN_EMAIL_IMAGE,0xc686dcee,0x54f2,0x419e,0x9a,0x27,0x2f,0xc7,0xf2,0xe9,0x8f,0x9e);
61DEFINE_GUID(WIA_EVENT_SCAN_FILM_IMAGE,0x9b2b662c,0x6185,0x438c,0xb6,0x8b,0xe3,0x9e,0xe2,0x5e,0x71,0xcb);
62DEFINE_GUID(WIA_EVENT_SCAN_IMAGE2,0xfc4767c1,0xc8b3,0x48a2,0x9c,0xfa,0x2e,0x90,0xcb,0x3d,0x35,0x90);
63DEFINE_GUID(WIA_EVENT_SCAN_IMAGE3,0x154e27be,0xb617,0x4653,0xac,0xc5,0x0f,0xd7,0xbd,0x4c,0x65,0xce);
64DEFINE_GUID(WIA_EVENT_SCAN_IMAGE4,0xa65b704a,0x7f3c,0x4447,0xa7,0x5d,0x8a,0x26,0xdf,0xca,0x1f,0xdf);
65DEFINE_GUID(WIA_EVENT_STORAGE_CREATED,0x353308b2,0xfe73,0x46c8,0x89,0x5e,0xfa,0x45,0x51,0xcc,0xc8,0x5a);
66DEFINE_GUID(WIA_EVENT_STORAGE_DELETED,0x5e41e75e,0x9390,0x44c5,0x9a,0x51,0xe4,0x70,0x19,0xe3,0x90,0xcf);
67DEFINE_GUID(WIA_EVENT_STI_PROXY,0xd711f81f,0x1f0d,0x422d,0x86,0x41,0x92,0x7d,0x1b,0x93,0xe5,0xe5);
68DEFINE_GUID(WIA_EVENT_CANCEL_IO,0xc860f7b8,0x9ccd,0x41ea,0xbb,0xbf,0x4d,0xd0,0x9c,0x5b,0x17,0x95);
69
70// Power management event GUIDs,sent by the WIA service to drivers
71DEFINE_GUID(WIA_EVENT_POWER_SUSPEND,0xa0922ff9,0xc3b4,0x411c,0x9e,0x29,0x03,0xa6,0x69,0x93,0xd2,0xbe);
72DEFINE_GUID(WIA_EVENT_POWER_RESUME,0x618f153e,0xf686,0x4350,0x96,0x34,0x41,0x15,0xa3,0x04,0x83,0x0c);
73
74// No action handler and prompt handler
75DEFINE_GUID(WIA_EVENT_HANDLER_NO_ACTION,0xe0372b7d,0xe115,0x4525,0xbc,0x55,0xb6,0x29,0xe6,0x8c,0x74,0x5a);
76DEFINE_GUID(WIA_EVENT_HANDLER_PROMPT,0x5f4baad0,0x4d59,0x4fcd,0xb2,0x13,0x78,0x3c,0xe7,0xa9,0x2f,0x22);
77
78// WIA Commands
79DEFINE_GUID(WIA_CMD_SYNCHRONIZE,0x9b26b7b2,0xacad,0x11d2,0xa0,0x93,0x00,0xc0,0x4f,0x72,0xdc,0x3c);
80DEFINE_GUID(WIA_CMD_TAKE_PICTURE,0xaf933cac,0xacad,0x11d2,0xa0,0x93,0x00,0xc0,0x4f,0x72,0xdc,0x3c);
81DEFINE_GUID(WIA_CMD_DELETE_ALL_ITEMS,0xe208c170,0xacad,0x11d2,0xa0,0x93,0x00,0xc0,0x4f,0x72,0xdc,0x3c);
82DEFINE_GUID(WIA_CMD_CHANGE_DOCUMENT,0x04e725b0,0xacae,0x11d2,0xa0,0x93,0x00,0xc0,0x4f,0x72,0xdc,0x3c);
83DEFINE_GUID(WIA_CMD_UNLOAD_DOCUMENT,0x1f3b3d8e,0xacae,0x11d2,0xa0,0x93,0x00,0xc0,0x4f,0x72,0xdc,0x3c);
84DEFINE_GUID(WIA_CMD_DIAGNOSTIC,0x10ff52f5,0xde04,0x4cf0,0xa5,0xad,0x69,0x1f,0x8d,0xce,0x01,0x41);
85
86DEFINE_GUID(WIA_CMD_DELETE_DEVICE_TREE,0x73815942,0xdbea,0x11d2,0x84,0x16,0x00,0xc0,0x4f,0xa3,0x61,0x45);
87DEFINE_GUID(WIA_CMD_BUILD_DEVICE_TREE,0x9cba5ce0,0xdbea,0x11d2,0x84,0x16,0x00,0xc0,0x4f,0xa3,0x61,0x45);
88
89DEFINE_GUID(IID_IWiaUIExtension,0xDA319113,0x50EE,0x4C80,0xB4,0x60,0x57,0xD0,0x05,0xD4,0x4A,0x2C);
90
91DEFINE_GUID(IID_IWiaDevMgr,0x5eb2502a,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11);
92DEFINE_GUID(IID_IEnumWIA_DEV_INFO,0x5e38b83c,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11);
93DEFINE_GUID(IID_IWiaEventCallback,0xae6287b0,0x0084,0x11d2,0x97,0x3b,0x00,0xa0,0xc9,0x06,0x8f,0x2e);
94DEFINE_GUID(IID_IWiaDataCallback,0xa558a866,0xa5b0,0x11d2,0xa0,0x8f,0x00,0xc0,0x4f,0x72,0xdc,0x3c);
95DEFINE_GUID(IID_IWiaDataTransfer,0xa6cef998,0xa5b0,0x11d2,0xa0,0x8f,0x00,0xc0,0x4f,0x72,0xdc,0x3c);
96DEFINE_GUID(IID_IWiaItem,0x4db1ad10,0x3391,0x11d2,0x9a,0x33,0x00,0xc0,0x4f,0xa3,0x61,0x45);
97DEFINE_GUID(IID_IWiaPropertyStorage,0x98B5E8A0,0x29CC,0x491a,0xAA,0xC0,0xE6,0xDB,0x4F,0xDC,0xCE,0xB6);
98DEFINE_GUID(IID_IEnumWiaItem,0x5e8383fc,0x3391,0x11d2,0x9a,0x33,0x00,0xc0,0x4f,0xa3,0x61,0x45);
99DEFINE_GUID(IID_IEnumWIA_DEV_CAPS,0x1fcc4287,0xaca6,0x11d2,0xa0,0x93,0x00,0xc0,0x4f,0x72,0xdc,0x3c);
100DEFINE_GUID(IID_IEnumWIA_FORMAT_INFO,0x81BEFC5B,0x656D,0x44f1,0xB2,0x4C,0xD4,0x1D,0x51,0xB4,0xDC,0x81);
101DEFINE_GUID(IID_IWiaLog,0xA00C10B6,0x82A1,0x452f,0x8B,0x6C,0x86,0x06,0x2A,0xAD,0x68,0x90);
102DEFINE_GUID(IID_IWiaLogEx,0xAF1F22AC,0x7A40,0x4787,0xB4,0x21,0xAE,0xb4,0x7A,0x1F,0xBD,0x0B);
103DEFINE_GUID(IID_IWiaNotifyDevMgr,0x70681EA0,0xE7BF,0x4291,0x9F,0xB1,0x4E,0x88,0x13,0xA3,0xF7,0x8E);
104DEFINE_GUID(IID_IWiaItemExtras,0x6291ef2c,0x36ef,0x4532,0x87,0x6a,0x8e,0x13,0x25,0x93,0x77,0x8d);
105DEFINE_GUID(CLSID_WiaDevMgr,0xa1f4e726,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11);
106DEFINE_GUID(CLSID_WiaLog,0xA1E75357,0x881A,0x419e,0x83,0xE2,0xBB,0x16,0xDB,0x19,0x7C,0x68);
lib/libc/mingw/math/x86/cossin.c-23
...@@ -5,7 +5,6 @@...@@ -5,7 +5,6 @@
5 */5 */
66
7void sincos (double __x, double *p_sin, double *p_cos);7void sincos (double __x, double *p_sin, double *p_cos);
8void sincosl (long double __x, long double *p_sin, long double *p_cos);
9void sincosf (float __x, float *p_sin, float *p_cos);8void sincosf (float __x, float *p_sin, float *p_cos);
109
11void sincos (double __x, double *p_sin, double *p_cos)10void sincos (double __x, double *p_sin, double *p_cos)
...@@ -51,25 +50,3 @@ void sincosf (float __x, float *p_sin, float *p_cos)...@@ -51,25 +50,3 @@ void sincosf (float __x, float *p_sin, float *p_cos)
51 *p_sin = (float) s;50 *p_sin = (float) s;
52 *p_cos = (float) c;51 *p_cos = (float) c;
53}52}
54
55void sincosl (long double __x, long double *p_sin, long double *p_cos)
56{
57 long double c, s;
58
59 __asm__ __volatile__ ("fsincos\n\t"
60 "fnstsw %%ax\n\t"
61 "testl $0x400, %%eax\n\t"
62 "jz 1f\n\t"
63 "fldpi\n\t"
64 "fadd %%st(0)\n\t"
65 "fxch %%st(1)\n\t"
66 "2: fprem1\n\t"
67 "fnstsw %%ax\n\t"
68 "testl $0x400, %%eax\n\t"
69 "jnz 2b\n\t"
70 "fstp %%st(1)\n\t"
71 "fsincos\n\t"
72 "1:" : "=t" (c), "=u" (s) : "0" (__x) : "eax");
73 *p_sin = s;
74 *p_cos = c;
75}
lib/libc/mingw/math/x86/cossinl.c created+29
...@@ -0,0 +1,29 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7void sincosl (long double __x, long double *p_sin, long double *p_cos);
8
9void sincosl (long double __x, long double *p_sin, long double *p_cos)
10{
11 long double c, s;
12
13 __asm__ __volatile__ ("fsincos\n\t"
14 "fnstsw %%ax\n\t"
15 "testl $0x400, %%eax\n\t"
16 "jz 1f\n\t"
17 "fldpi\n\t"
18 "fadd %%st(0)\n\t"
19 "fxch %%st(1)\n\t"
20 "2: fprem1\n\t"
21 "fnstsw %%ax\n\t"
22 "testl $0x400, %%eax\n\t"
23 "jnz 2b\n\t"
24 "fstp %%st(1)\n\t"
25 "fsincos\n\t"
26 "1:" : "=t" (c), "=u" (s) : "0" (__x) : "eax");
27 *p_sin = s;
28 *p_cos = c;
29}
lib/libc/mingw/misc/isblank.c deleted-7
...@@ -1,7 +0,0 @@
1#define __NO_CTYPE_LINES
2#include <ctype.h>
3
4int __cdecl isblank (int _C)
5{
6 return (_isctype(_C, _BLANK) || _C == '\t');
7}
lib/libc/mingw/misc/iswblank.c deleted-7
...@@ -1,7 +0,0 @@
1#define _CRT_WCTYPE_NOINLINE
2#include <ctype.h>
3
4int __cdecl iswblank (wint_t _C)
5{
6 return (iswctype(_C, _BLANK) || _C == '\t');
7}
lib/libc/mingw/misc/wctob.c+1-1
...@@ -25,5 +25,5 @@ int wctob (wint_t wc )...@@ -25,5 +25,5 @@ int wctob (wint_t wc )
25 || invalid_char)25 || invalid_char)
26 return EOF;26 return EOF;
2727
28 return (int) c;28 return (unsigned char) c;
29}29}
lib/libc/mingw/misc/wctrans.c deleted-65
...@@ -1,65 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6/*
7 wctrans.c
8 7.25.3.2 Extensible wide-character case mapping functions
9
10 Contributed by: Danny Smith <dannysmith@usesr.sourcefoge.net>
11 2005-02-24
12
13 This source code is placed in the PUBLIC DOMAIN. It is modified
14 from the Q8 package created by Doug Gwyn <gwyn@arl.mil>
15
16 */
17
18#include <string.h>
19#include <wctype.h>
20
21/*
22 This differs from the MS implementation of wctrans which
23 returns 0 for tolower and 1 for toupper. According to
24 C99, a 0 return value indicates invalid input.
25
26 These two function go in the same translation unit so that we
27 can ensure that
28 towctrans(wc, wctrans("tolower")) == towlower(wc)
29 towctrans(wc, wctrans("toupper")) == towupper(wc)
30 It also ensures that
31 towctrans(wc, wctrans("")) == wc
32 which is not required by standard.
33*/
34
35static const struct {
36 const char *name;
37 wctrans_t val; } tmap[] = {
38 {"tolower", _LOWER},
39 {"toupper", _UPPER}
40 };
41
42#define NTMAP (sizeof tmap / sizeof tmap[0])
43
44wctrans_t
45wctrans (const char* property)
46{
47 int i;
48 for ( i = 0; i < (int) NTMAP; ++i )
49 if (strcmp (property, tmap[i].name) == 0)
50 return tmap[i].val;
51 return 0;
52}
53
54wint_t towctrans (wint_t wc, wctrans_t desc)
55{
56 switch (desc)
57 {
58 case _LOWER:
59 return towlower (wc);
60 case _UPPER:
61 return towupper (wc);
62 default:
63 return wc;
64 }
65}
lib/libc/mingw/misc/wctype.c deleted-65
...@@ -1,65 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6/*
7 wctype.c
8 7.25.2.2.2 The wctype function
9
10 Contributed by: Danny Smith <dannysmith@usesr.sourcefoge.net>
11 2005-02-24
12
13 This source code is placed in the PUBLIC DOMAIN. It is modified
14 from the Q8 package created by Doug Gwyn <gwyn@arl.mil>
15
16 The wctype function constructs a value with type wctype_t that
17 describes a class of wide characters identified by the string
18 argument property.
19
20 In particular, we map the property strings so that:
21
22 iswctype(wc, wctype("alnum")) == iswalnum(wc)
23 iswctype(wc, wctype("alpha")) == iswalpha(wc)
24 iswctype(wc, wctype("cntrl")) == iswcntrl(wc)
25 iswctype(wc, wctype("digit")) == iswdigit(wc)
26 iswctype(wc, wctype("graph")) == iswgraph(wc)
27 iswctype(wc, wctype("lower")) == iswlower(wc)
28 iswctype(wc, wctype("print")) == iswprint(wc)
29 iswctype(wc, wctype("punct")) == iswpunct(wc)
30 iswctype(wc, wctype("space")) == iswspace(wc)
31 iswctype(wc, wctype("upper")) == iswupper(wc)
32 iswctype(wc, wctype("xdigit")) == iswxdigit(wc)
33
34*/
35
36#include <string.h>
37#include <wctype.h>
38
39/* Using the bit-OR'd ctype character classification flags as return
40 values achieves compatibility with MS iswctype(). */
41static const struct {
42 const char *name;
43 wctype_t flags;} cmap[] = {
44 {"alnum", _ALPHA|_DIGIT},
45 {"alpha", _ALPHA},
46 {"cntrl", _CONTROL},
47 {"digit", _DIGIT},
48 {"graph", _PUNCT|_ALPHA|_DIGIT},
49 {"lower", _LOWER},
50 {"print", _BLANK|_PUNCT|_ALPHA|_DIGIT},
51 {"punct", _PUNCT},
52 {"space", _SPACE},
53 {"upper", _UPPER},
54 {"xdigit", _HEX}
55 };
56
57#define NCMAP (sizeof cmap / sizeof cmap[0])
58wctype_t wctype (const char *property)
59{
60 int i;
61 for (i = 0; i < (int) NCMAP; ++i)
62 if (strcmp (property, cmap[i].name) == 0)
63 return cmap[i].flags;
64 return 0;
65}
lib/libc/mingw/stdio/mingw_fprintfw.c deleted-9
...@@ -1,9 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7
8#include "mingw_fprintf.c"
9
lib/libc/mingw/stdio/mingw_fwprintf.c created+9
...@@ -0,0 +1,9 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7
8#include "mingw_fprintf.c"
9
lib/libc/mingw/stdio/mingw_pformat.h+9-2
...@@ -72,13 +72,20 @@...@@ -72,13 +72,20 @@
7272
73# define __printf __mingw_wprintf73# define __printf __mingw_wprintf
74# define __fprintf __mingw_fwprintf74# define __fprintf __mingw_fwprintf
75# define __sprintf __mingw_swprintf75#ifdef __BUILD_WIDEAPI_ISO
76# define __snprintf __mingw_swprintf
77#else
76# define __snprintf __mingw_snwprintf78# define __snprintf __mingw_snwprintf
79#endif
7780
78# define __vprintf __mingw_vwprintf81# define __vprintf __mingw_vwprintf
79# define __vfprintf __mingw_vfwprintf82# define __vfprintf __mingw_vfwprintf
80# define __vsprintf __mingw_vswprintf83#ifdef __BUILD_WIDEAPI_ISO
84# define __vsnprintf __mingw_vswprintf
85#else
81# define __vsnprintf __mingw_vsnwprintf86# define __vsnprintf __mingw_vsnwprintf
87#endif
88
82#else89#else
83# define __pformat __mingw_pformat90# define __pformat __mingw_pformat
84#define __fputc(X,STR) fputc((X), (STR))91#define __fputc(X,STR) fputc((X), (STR))
lib/libc/mingw/stdio/mingw_pformatw.c deleted-9
...@@ -1,9 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7
8#include "mingw_pformat.c"
9
lib/libc/mingw/stdio/mingw_printfw.c deleted-9
...@@ -1,9 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7
8#include "mingw_printf.c"
9
lib/libc/mingw/stdio/mingw_sformat.c created+1602
...@@ -0,0 +1,1602 @@
1/*
2 This Software is provided under the Zope Public License (ZPL) Version 2.1.
3
4 Copyright (c) 2011 by the mingw-w64 project
5
6 See the AUTHORS file for the list of contributors to the mingw-w64 project.
7
8 This license has been certified as open source. It has also been designated
9 as GPL compatible by the Free Software Foundation (FSF).
10
11 Redistribution and use in source and binary forms, with or without
12 modification, are permitted provided that the following conditions are met:
13
14 1. Redistributions in source code must retain the accompanying copyright
15 notice, this list of conditions, and the following disclaimer.
16 2. Redistributions in binary form must reproduce the accompanying
17 copyright notice, this list of conditions, and the following disclaimer
18 in the documentation and/or other materials provided with the
19 distribution.
20 3. Names of the copyright holders must not be used to endorse or promote
21 products derived from this software without prior written permission
22 from the copyright holders.
23 4. The right to distribute this software or to use it for any purpose does
24 not give you the right to use Servicemarks (sm) or Trademarks (tm) of
25 the copyright holders. Use of them is covered by separate agreement
26 with the copyright holders.
27 5. If any files are modified, you must cause the modified files to carry
28 prominent notices stating that you changed the files and the date of
29 any change.
30
31 Disclaimer
32
33 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
34 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
35 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
36 EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
37 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
38 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
39 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
40 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
41 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
42 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43*/
44
45#define __LARGE_MBSTATE_T
46
47#include <limits.h>
48#include <stddef.h>
49#include <stdarg.h>
50#include <stdio.h>
51#include <stdint.h>
52#include <stdlib.h>
53#include <string.h>
54#include <wchar.h>
55#include <ctype.h>
56#include <wctype.h>
57#include <locale.h>
58#include <errno.h>
59
60#include "mingw_sformat.h"
61
62/* Helper flags for conversion. */
63#define IS_C 0x0001
64#define IS_S 0x0002
65#define IS_L 0x0004
66#define IS_LL 0x0008
67#define IS_SIGNED_NUM 0x0010
68#define IS_POINTER 0x0020
69#define IS_HEX_FLOAT 0x0040
70#define IS_SUPPRESSED 0x0080
71#define USE_GROUP 0x0100
72#define USE_GNU_ALLOC 0x0200
73#define USE_POSIX_ALLOC 0x0400
74
75#define IS_ALLOC_USED (USE_GNU_ALLOC | USE_POSIX_ALLOC)
76
77static void *
78get_va_nth (va_list argp, unsigned int n)
79{
80 va_list ap;
81 if (!n) abort ();
82 va_copy (ap, argp);
83 while (--n > 0)
84 (void) va_arg(ap, void *);
85 return va_arg (ap, void *);
86}
87
88static void
89optimize_alloc (char **p, char *end, size_t alloc_sz)
90{
91 size_t need_sz;
92 char *h;
93
94 if (!p || !*p)
95 return;
96
97 need_sz = end - *p;
98 if (need_sz == alloc_sz)
99 return;
100
101 if ((h = (char *) realloc (*p, need_sz)) != NULL)
102 *p = h;
103}
104
105static void
106back_ch (int c, _IFP *s, size_t *rin, int not_eof)
107{
108 if (!not_eof && c == EOF)
109 return;
110 if (s->is_string == 0)
111 {
112 FILE *fp = s->fp;
113 ungetc (c, fp);
114 rin[0] -= 1;
115 return;
116 }
117 rin[0] -= 1;
118 s->bch[s->back_top] = c;
119 s->back_top += 1;
120}
121
122static int
123in_ch (_IFP *s, size_t *rin)
124{
125 int r;
126 if (s->back_top)
127 {
128 s->back_top -= 1;
129 r = s->bch[s->back_top];
130 rin[0] += 1;
131 }
132 else if (s->seen_eof)
133 {
134 return EOF;
135 }
136 else if (s->is_string)
137 {
138 const char *ps = s->str;
139 r = ((int) *ps) & 0xff;
140 ps++;
141 if (r != 0)
142 {
143 rin[0] += 1;
144 s->str = ps;
145 return r;
146 }
147 s->seen_eof = 1;
148 return EOF;
149 }
150 else
151 {
152 FILE *fp = (FILE *) s->fp;
153 r = getc (fp);
154 if (r != EOF)
155 rin[0] += 1;
156 else s->seen_eof = 1;
157 }
158 return r;
159}
160
161static int
162match_string (_IFP *s, size_t *rin, int *c, const char *str)
163{
164 int ch = *c;
165
166 if (*str == 0)
167 return 1;
168
169 if (*str != (char) tolower (ch))
170 return 0;
171 ++str;
172 while (*str != 0)
173 {
174 if ((ch = in_ch (s, rin)) == EOF)
175 {
176 c[0] = ch;
177 return 0;
178 }
179
180 if (*str != (char) tolower (ch))
181 {
182 c[0] = ch;
183 return 0;
184 }
185 ++str;
186 }
187 c[0] = ch;
188 return 1;
189}
190
191struct gcollect
192{
193 size_t count;
194 struct gcollect *next;
195 char **ptrs[32];
196};
197
198static void
199release_ptrs (struct gcollect **pt, char **wbuf)
200{
201 struct gcollect *pf;
202 size_t cnt;
203
204 if (wbuf)
205 {
206 free (*wbuf);
207 *wbuf = NULL;
208 }
209 if (!pt || (pf = *pt) == NULL)
210 return;
211 while (pf != NULL)
212 {
213 struct gcollect *pf_sv = pf;
214 for (cnt = 0; cnt < pf->count; ++cnt)
215 {
216 free (*pf->ptrs[cnt]);
217 *pf->ptrs[cnt] = NULL;
218 }
219 pf = pf->next;
220 free (pf_sv);
221 }
222 *pt = NULL;
223}
224
225static int
226cleanup_return (int rval, struct gcollect **pfree, char **strp, char **wbuf)
227{
228 if (rval == EOF)
229 release_ptrs (pfree, wbuf);
230 else
231 {
232 if (pfree)
233 {
234 struct gcollect *pf = *pfree, *pf_sv;
235 while (pf != NULL)
236 {
237 pf_sv = pf;
238 pf = pf->next;
239 free (pf_sv);
240 }
241 *pfree = NULL;
242 }
243 if (strp != NULL)
244 {
245 free (*strp);
246 *strp = NULL;
247 }
248 if (wbuf)
249 {
250 free (*wbuf);
251 *wbuf = NULL;
252 }
253 }
254 return rval;
255}
256
257static struct gcollect *
258resize_gcollect (struct gcollect *pf)
259{
260 struct gcollect *np;
261 if (pf && pf->count < 32)
262 return pf;
263 np = malloc (sizeof (struct gcollect));
264 np->count = 0;
265 np->next = pf;
266 return np;
267}
268
269static char *
270resize_wbuf (size_t wpsz, size_t *wbuf_max_sz, char *old)
271{
272 char *wbuf;
273 size_t nsz;
274 if (*wbuf_max_sz != wpsz)
275 return old;
276 nsz = (256 > (2 * wbuf_max_sz[0]) ? 256 : (2 * wbuf_max_sz[0]));
277 if (!old)
278 wbuf = (char *) malloc (nsz);
279 else
280 wbuf = (char *) realloc (old, nsz);
281 if (!wbuf)
282 {
283 if (old)
284 free (old);
285 }
286 else
287 *wbuf_max_sz = nsz;
288 return wbuf;
289}
290
291int
292__cdecl
293__mingw_sformat (_IFP *s, const char *format, va_list argp)
294{
295 const char *f = format;
296 struct gcollect *gcollect = NULL;
297 size_t read_in = 0, wbuf_max_sz = 0, cnt;
298 ssize_t str_sz = 0;
299 char *str = NULL, **pstr = NULL, *wbuf = NULL;
300 wchar_t *wstr = NULL;
301 int rval = 0, c = 0, ignore_ws = 0;
302 va_list arg;
303 unsigned char fc;
304 unsigned int npos;
305 int width, flags, base = 0, errno_sv;
306 size_t wbuf_cur_sz, read_in_sv, new_sz, n;
307 char seen_dot, seen_exp, is_neg, not_in;
308 char *tmp_wbuf_ptr, buf[MB_LEN_MAX];
309 const char *lc_decimal_point, *lc_thousands_sep;
310 mbstate_t state, cstate;
311 union {
312 unsigned long long ull;
313 unsigned long ul;
314 long long ll;
315 long l;
316 } cv_val;
317
318 arg = argp;
319
320 if (!s || s->fp == NULL || !format)
321 {
322 errno = EINVAL;
323 return EOF;
324 }
325
326 memset (&state, 0, sizeof (state));
327
328 lc_decimal_point = localeconv()->decimal_point;
329 lc_thousands_sep = localeconv()->thousands_sep;
330 if (lc_thousands_sep != NULL && *lc_thousands_sep == 0)
331 lc_thousands_sep = NULL;
332
333 while (*f != 0)
334 {
335 if (!isascii ((unsigned char) *f))
336 {
337 int len;
338
339 if ((len = mbrlen (f, strlen (f), &state)) > 0)
340 {
341 do
342 {
343 if ((c = in_ch (s, &read_in)) == EOF || c != (unsigned char) *f++)
344 {
345 back_ch (c, s, &read_in, 1);
346 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
347 }
348 }
349 while (--len > 0);
350
351 continue;
352 }
353 }
354
355 fc = *f++;
356 if (fc != '%')
357 {
358 if (isspace (fc))
359 ignore_ws = 1;
360 else
361 {
362 if ((c = in_ch (s, &read_in)) == EOF)
363 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
364
365 if (ignore_ws)
366 {
367 ignore_ws = 0;
368 if (isspace (c))
369 {
370 do
371 {
372 if ((c = in_ch (s, &read_in)) == EOF)
373 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
374 }
375 while (isspace (c));
376 }
377 }
378
379 if (c != fc)
380 {
381 back_ch (c, s, &read_in, 0);
382 return cleanup_return (rval, &gcollect, pstr, &wbuf);
383 }
384 }
385
386 continue;
387 }
388
389 width = flags = 0;
390 npos = 0;
391 wbuf_cur_sz = 0;
392
393 if (isdigit ((unsigned char) *f))
394 {
395 const char *svf = f;
396 npos = (unsigned char) *f++ - '0';
397 while (isdigit ((unsigned char) *f))
398 npos = npos * 10 + ((unsigned char) *f++ - '0');
399 if (*f != '$')
400 {
401 npos = 0;
402 f = svf;
403 }
404 else
405 f++;
406 }
407
408 do
409 {
410 if (*f == '*')
411 flags |= IS_SUPPRESSED;
412 else if (*f == '\'')
413 {
414 if (lc_thousands_sep)
415 flags |= USE_GROUP;
416 }
417 else if (*f == 'I')
418 {
419 /* we don't support locale's digits (i18N), but ignore it for now silently. */
420 ;
421#ifdef _WIN32
422 if (f[1] == '6' && f[2] == '4')
423 {
424 flags |= IS_LL | IS_L;
425 f += 2;
426 }
427 else if (f[1] == '3' && f[2] == '2')
428 {
429 flags |= IS_L;
430 f += 2;
431 }
432 else
433 {
434#ifdef _WIN64
435 flags |= IS_LL | IS_L;
436#else
437 flags |= IS_L;
438#endif
439 }
440#endif
441 }
442 else
443 break;
444 ++f;
445 }
446 while (1);
447
448 while (isdigit ((unsigned char) *f))
449 width = width * 10 + ((unsigned char) *f++ - '0');
450
451 if (!width)
452 width = -1;
453
454 switch (*f)
455 {
456 case 'h':
457 ++f;
458 flags |= (*f == 'h' ? IS_C : IS_S);
459 if (*f == 'h')
460 ++f;
461 break;
462 case 'l':
463 ++f;
464 flags |= (*f == 'l' ? IS_LL : 0) | IS_L;
465 if (*f == 'l')
466 ++f;
467 break;
468 case 'q': case 'L':
469 ++f;
470 flags |= IS_LL | IS_L;
471 break;
472 case 'a':
473 if (f[1] != 's' && f[1] != 'S' && f[1] != '[')
474 break;
475 ++f;
476 flags |= USE_GNU_ALLOC;
477 break;
478 case 'm':
479 flags |= USE_POSIX_ALLOC;
480 ++f;
481 if (*f == 'l')
482 {
483 flags |= IS_L;
484 f++;
485 }
486 break;
487 case 'z':
488#ifdef _WIN64
489 flags |= IS_LL | IS_L;
490#else
491 flags |= IS_L;
492#endif
493 ++f;
494 break;
495 case 'j':
496 if (sizeof (uintmax_t) > sizeof (unsigned long))
497 flags |= IS_LL;
498 else if (sizeof (uintmax_t) > sizeof (unsigned int))
499 flags |= IS_L;
500 ++f;
501 break;
502 case 't':
503#ifdef _WIN64
504 flags |= IS_LL;
505#else
506 flags |= IS_L;
507#endif
508 ++f;
509 break;
510 case 0:
511 return cleanup_return (rval, &gcollect, pstr, &wbuf);
512 default:
513 break;
514 }
515
516 if (*f == 0)
517 return cleanup_return (rval, &gcollect, pstr, &wbuf);
518
519 fc = *f++;
520 if (ignore_ws || (fc != '[' && fc != 'c' && fc != 'C' && fc != 'n'))
521 {
522 errno_sv = errno;
523 errno = 0;
524 do
525 {
526 if ((c == EOF || (c = in_ch (s, &read_in)) == EOF)
527 && errno == EINTR)
528 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
529 }
530 while (isspace (c));
531
532 ignore_ws = 0;
533 errno = errno_sv;
534 back_ch (c, s, &read_in, 0);
535 }
536
537 switch (fc)
538 {
539 case 'c':
540 if ((flags & IS_L) != 0)
541 fc = 'C';
542 break;
543 case 's':
544 if ((flags & IS_L) != 0)
545 fc = 'S';
546 break;
547 }
548
549 switch (fc)
550 {
551 case '%':
552 if ((c = in_ch (s, &read_in)) == EOF)
553 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
554 if (c != fc)
555 {
556 back_ch (c, s, &read_in, 1);
557 return cleanup_return (rval, &gcollect, pstr, &wbuf);
558 }
559 break;
560
561 case 'n':
562 if ((flags & IS_SUPPRESSED) == 0)
563 {
564 if ((flags & IS_LL) != 0)
565 *(npos != 0 ? (long long *) get_va_nth (argp, npos) : va_arg (arg, long long *)) = read_in;
566 else if ((flags & IS_L) != 0)
567 *(npos != 0 ? (long *) get_va_nth (argp, npos) : va_arg (arg, long *)) = read_in;
568 else if ((flags & IS_S) != 0)
569 *(npos != 0 ? (short *) get_va_nth (argp, npos) : va_arg (arg, short *)) = read_in;
570 else if ((flags & IS_C) != 0)
571 *(npos != 0 ? (char *) get_va_nth (argp, npos) : va_arg (arg, char *)) = read_in;
572 else
573 *(npos != 0 ? (int *) get_va_nth (argp, npos) : va_arg (arg, int *)) = read_in;
574 }
575 break;
576
577 case 'c':
578 if (width == -1)
579 width = 1;
580
581 if ((flags & IS_SUPPRESSED) == 0)
582 {
583 if ((flags & IS_ALLOC_USED) != 0)
584 {
585 if (npos != 0)
586 pstr = (char **) get_va_nth (argp, npos);
587 else
588 pstr = va_arg (arg, char **);
589
590 if (!pstr)
591 return cleanup_return (rval, &gcollect, pstr, &wbuf);
592
593 str_sz = (width > 1024 ? 1024 : width);
594 if ((str = *pstr = (char *) malloc (str_sz)) == NULL)
595 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
596
597 gcollect = resize_gcollect (gcollect);
598 gcollect->ptrs[gcollect->count++] = pstr;
599 }
600 else
601 {
602 if (npos != 0)
603 str = (char *) get_va_nth (argp, npos);
604 else
605 str = va_arg (arg, char *);
606 if (!str)
607 return cleanup_return (rval, &gcollect, pstr, &wbuf);
608 }
609 }
610
611 if ((c = in_ch (s, &read_in)) == EOF)
612 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
613
614 if ((flags & IS_SUPPRESSED) == 0)
615 {
616 do
617 {
618 if ((flags & IS_ALLOC_USED) != 0 && str == (*pstr + str_sz))
619 {
620 new_sz = str_sz + (str_sz >= width ? width - 1 : str_sz);
621 while ((str = (char *) realloc (*pstr, new_sz)) == NULL
622 && new_sz > (size_t) (str_sz + 1))
623 new_sz = str_sz + 1;
624 if (!str)
625 {
626 release_ptrs (&gcollect, &wbuf);
627 return EOF;
628 }
629 *pstr = str;
630 str += str_sz;
631 str_sz = new_sz;
632 }
633 *str++ = c;
634 }
635 while (--width > 0 && (c = in_ch (s, &read_in)) != EOF);
636 }
637 else
638 while (--width > 0 && (c = in_ch (s, &read_in)) != EOF);
639
640 if ((flags & IS_SUPPRESSED) == 0)
641 {
642 optimize_alloc (pstr, str, str_sz);
643 pstr = NULL;
644 ++rval;
645 }
646
647 break;
648
649 case 'C':
650 if (width == -1)
651 width = 1;
652
653 if ((flags & IS_SUPPRESSED) == 0)
654 {
655 if ((flags & IS_ALLOC_USED) != 0)
656 {
657 if (npos != 0)
658 pstr = (char **) get_va_nth (argp, npos);
659 else
660 pstr = va_arg (arg, char **);
661
662 if (!pstr)
663 return cleanup_return (rval, &gcollect, pstr, &wbuf);
664 str_sz = (width > 1024 ? 1024 : width);
665 *pstr = (char *) malloc (str_sz * sizeof (wchar_t));
666 if ((wstr = (wchar_t *) *pstr) == NULL)
667 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
668 gcollect = resize_gcollect (gcollect);
669 gcollect->ptrs[gcollect->count++] = pstr;
670 }
671 else
672 {
673 if (npos != 0)
674 wstr = (wchar_t *) get_va_nth (argp, npos);
675 else
676 wstr = va_arg (arg, wchar_t *);
677 if (!wstr)
678 return cleanup_return (rval, &gcollect, pstr, &wbuf);
679 }
680 }
681
682 if ((c = in_ch (s, &read_in)) == EOF)
683 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
684
685 memset (&cstate, 0, sizeof (cstate));
686
687 do
688 {
689 buf[0] = c;
690
691 if ((flags & IS_SUPPRESSED) == 0 && (flags & IS_ALLOC_USED) != 0
692 && wstr == ((wchar_t *) *pstr + str_sz))
693 {
694 new_sz = str_sz + (str_sz > width ? width - 1 : str_sz);
695
696 while ((wstr = (wchar_t *) realloc (*pstr, new_sz * sizeof (wchar_t))) == NULL
697 && new_sz > (size_t) (str_sz + 1))
698 new_sz = str_sz + 1;
699 if (!wstr)
700 {
701 release_ptrs (&gcollect, &wbuf);
702 return EOF;
703 }
704 *pstr = (char *) wstr;
705 wstr += str_sz;
706 str_sz = new_sz;
707 }
708
709 while (1)
710 {
711 n = mbrtowc ((flags & IS_SUPPRESSED) == 0 ? wstr : NULL, buf, 1, &cstate);
712
713 if (n == (size_t) -2)
714 {
715 if ((c = in_ch (s, &read_in)) == EOF)
716 {
717 errno = EILSEQ;
718 return cleanup_return (rval, &gcollect, pstr, &wbuf);
719 }
720
721 buf[0] = c;
722 continue;
723 }
724
725 if (n != 1)
726 {
727 errno = EILSEQ;
728 return cleanup_return (rval, &gcollect, pstr, &wbuf);
729 }
730 break;
731 }
732
733 ++wstr;
734 }
735 while (--width > 0 && (c = in_ch (s, &read_in)) != EOF);
736
737 if ((flags & IS_SUPPRESSED) == 0)
738 {
739 optimize_alloc (pstr, (char *) wstr, str_sz * sizeof (wchar_t));
740 pstr = NULL;
741 ++rval;
742 }
743 break;
744
745 case 's':
746 if ((flags & IS_SUPPRESSED) == 0)
747 {
748 if ((flags & IS_ALLOC_USED) != 0)
749 {
750 if (npos != 0)
751 pstr = (char **) get_va_nth (argp, npos);
752 else
753 pstr = va_arg (arg, char **);
754
755 if (!pstr)
756 return cleanup_return (rval, &gcollect, pstr, &wbuf);
757
758 str_sz = 100;
759 if ((str = *pstr = (char *) malloc (100)) == NULL)
760 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
761 gcollect = resize_gcollect (gcollect);
762 gcollect->ptrs[gcollect->count++] = pstr;
763 }
764 else
765 {
766 if (npos != 0)
767 str = (char *) get_va_nth (argp, npos);
768 else
769 str = va_arg (arg, char *);
770 if (!str)
771 return cleanup_return (rval, &gcollect, pstr, &wbuf);
772 }
773 }
774
775 if ((c = in_ch (s, &read_in)) == EOF)
776 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
777
778 do
779 {
780 if (isspace (c))
781 {
782 back_ch (c, s, &read_in, 1);
783 break;
784 }
785
786 if ((flags & IS_SUPPRESSED) == 0)
787 {
788 *str++ = c;
789 if ((flags & IS_ALLOC_USED) != 0 && str == (*pstr + str_sz))
790 {
791 new_sz = str_sz * 2;
792
793 while ((str = (char *) realloc (*pstr, new_sz)) == NULL
794 && new_sz > (size_t) (str_sz + 1))
795 new_sz = str_sz + 1;
796 if (!str)
797 {
798 if ((flags & USE_POSIX_ALLOC) == 0)
799 {
800 (*pstr)[str_sz - 1] = 0;
801 pstr = NULL;
802 ++rval;
803 }
804 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
805 }
806 *pstr = str;
807 str += str_sz;
808 str_sz = new_sz;
809 }
810 }
811 }
812 while ((width <= 0 || --width > 0) && (c = in_ch (s, &read_in)) != EOF);
813
814 if ((flags & IS_SUPPRESSED) == 0)
815 {
816 *str++ = 0;
817 optimize_alloc (pstr, str, str_sz);
818 pstr = NULL;
819 ++rval;
820 }
821 break;
822
823 case 'S':
824 if ((flags & IS_SUPPRESSED) == 0)
825 {
826 if ((flags & IS_ALLOC_USED) != 0)
827 {
828 if (npos != 0)
829 pstr = (char **) get_va_nth (argp, npos);
830 else
831 pstr = va_arg (arg, char **);
832
833 if (!pstr)
834 return cleanup_return (rval, &gcollect, pstr, &wbuf);
835
836 str_sz = 100;
837 *pstr = (char *) malloc (100 * sizeof (wchar_t));
838 if ((wstr = (wchar_t *) *pstr) == NULL)
839 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
840 gcollect = resize_gcollect (gcollect);
841 gcollect->ptrs[gcollect->count++] = pstr;
842 }
843 else
844 {
845 if (npos != 0)
846 wstr = (wchar_t *) get_va_nth (argp, npos);
847 else
848 wstr = va_arg (arg, wchar_t *);
849 if (!wstr)
850 return cleanup_return (rval, &gcollect, pstr, &wbuf);
851 }
852 }
853
854 if ((c = in_ch (s, &read_in)) == EOF)
855 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
856
857 memset (&cstate, 0, sizeof (cstate));
858
859 do
860 {
861 if (isspace (c))
862 {
863 back_ch (c, s, &read_in, 1);
864 break;
865 }
866
867 buf[0] = c;
868
869 while (1)
870 {
871 n = mbrtowc ((flags & IS_SUPPRESSED) == 0 ? wstr : NULL, buf, 1, &cstate);
872
873 if (n == (size_t) -2)
874 {
875 if ((c = in_ch (s, &read_in)) == EOF)
876 {
877 errno = EILSEQ;
878 return cleanup_return (rval, &gcollect, pstr, &wbuf);
879 }
880
881 buf[0] = c;
882 continue;
883 }
884
885 if (n != 1)
886 {
887 errno = EILSEQ;
888 return cleanup_return (rval, &gcollect, pstr, &wbuf);
889 }
890
891 ++wstr;
892 break;
893 }
894
895 if ((flags & IS_SUPPRESSED) == 0 && (flags & IS_ALLOC_USED) != 0
896 && wstr == ((wchar_t *) *pstr + str_sz))
897 {
898 new_sz = str_sz * 2;
899 while ((wstr = (wchar_t *) realloc (*pstr, new_sz * sizeof (wchar_t))) == NULL
900 && new_sz > (size_t) (str_sz + 1))
901 new_sz = str_sz + 1;
902 if (!wstr)
903 {
904 if ((flags & USE_POSIX_ALLOC) == 0)
905 {
906 ((wchar_t *) (*pstr))[str_sz - 1] = 0;
907 pstr = NULL;
908 ++rval;
909 }
910 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
911 }
912 *pstr = (char *) wstr;
913 wstr += str_sz;
914 str_sz = new_sz;
915 }
916 }
917 while ((width <= 0 || --width > 0) && (c = in_ch (s, &read_in)) != EOF);
918
919 if ((flags & IS_SUPPRESSED) == 0)
920 {
921 *wstr++ = 0;
922 optimize_alloc (pstr, (char *) wstr, str_sz * sizeof (wchar_t));
923 pstr = NULL;
924 ++rval;
925 }
926 break;
927
928 case 'd': case 'i':
929 case 'o': case 'p':
930 case 'u':
931 case 'x': case 'X':
932 switch (fc)
933 {
934 case 'd':
935 flags |= IS_SIGNED_NUM;
936 base = 10;
937 break;
938 case 'i':
939 flags |= IS_SIGNED_NUM;
940 base = 0;
941 break;
942 case 'o':
943 base = 8;
944 break;
945 case 'p':
946 base = 16;
947 flags &= ~(IS_S | IS_LL | IS_L);
948 #ifdef _WIN64
949 flags |= IS_LL;
950 #endif
951 flags |= IS_L | IS_POINTER;
952 break;
953 case 'u':
954 base = 10;
955 break;
956 case 'x': case 'X':
957 base = 16;
958 break;
959 }
960
961 if ((c = in_ch (s, &read_in)) == EOF)
962 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
963 if (c == '+' || c == '-')
964 {
965 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
966 wbuf[wbuf_cur_sz++] = c;
967 if (width > 0)
968 --width;
969 c = in_ch (s, &read_in);
970 }
971 if (width != 0 && c == '0')
972 {
973 if (width > 0)
974 --width;
975
976 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
977 wbuf[wbuf_cur_sz++] = c;
978 c = in_ch (s, &read_in);
979
980 if (width != 0 && tolower (c) == 'x')
981 {
982 if (!base)
983 base = 16;
984 if (base == 16)
985 {
986 if (width > 0)
987 --width;
988 c = in_ch (s, &read_in);
989 }
990 }
991 else if (!base)
992 base = 8;
993 }
994
995 if (!base)
996 base = 10;
997
998 while (c != EOF && width != 0)
999 {
1000 if (base == 16)
1001 {
1002 if (!isxdigit (c))
1003 break;
1004 }
1005 else if (!isdigit (c) || (int) (c - '0') >= base)
1006 {
1007 const char *p = lc_thousands_sep;
1008 int remain;
1009
1010 if (base != 10 || (flags & USE_GROUP) == 0)
1011 break;
1012 remain = width > 0 ? width : INT_MAX;
1013 while ((unsigned char) *p == c && remain >= 0)
1014 {
1015 /* As our conversion routines aren't supporting thousands
1016 separators, we are filtering them here. */
1017
1018 ++p;
1019 if (*p == 0 || !remain || (c = in_ch (s, &read_in)) == EOF)
1020 break;
1021 --remain;
1022 }
1023
1024 if (*p != 0)
1025 {
1026 if (p > lc_thousands_sep)
1027 {
1028 back_ch (c, s, &read_in, 0);
1029 while (--p > lc_thousands_sep)
1030 back_ch ((unsigned char) *p, s, &read_in, 1);
1031 c = (unsigned char) *p;
1032 }
1033 break;
1034 }
1035
1036 if (width > 0)
1037 width = remain;
1038 --wbuf_cur_sz;
1039 }
1040 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1041 wbuf[wbuf_cur_sz++] = c;
1042 if (width > 0)
1043 --width;
1044
1045 c = in_ch (s, &read_in);
1046 }
1047
1048 if (!wbuf_cur_sz || (wbuf_cur_sz == 1 && (wbuf[0] == '+' || wbuf[0] == '-')))
1049 {
1050 if (!wbuf_cur_sz && (flags & IS_POINTER) != 0
1051 && match_string (s, &read_in, &c, "(nil)"))
1052 {
1053 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1054 wbuf[wbuf_cur_sz++] = '0';
1055 }
1056 else
1057 {
1058 back_ch (c, s, &read_in, 0);
1059 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1060 }
1061 }
1062 else
1063 back_ch (c, s, &read_in, 0);
1064
1065 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1066 wbuf[wbuf_cur_sz++] = 0;
1067
1068 if ((flags & IS_LL))
1069 {
1070 if (flags & IS_SIGNED_NUM)
1071 cv_val.ll = strtoll (wbuf, &tmp_wbuf_ptr, base/*, flags & USE_GROUP*/);
1072 else
1073 cv_val.ull = strtoull (wbuf, &tmp_wbuf_ptr, base);
1074 }
1075 else
1076 {
1077 if (flags & IS_SIGNED_NUM)
1078 cv_val.l = strtol (wbuf, &tmp_wbuf_ptr, base/*, flags & USE_GROUP*/);
1079 else
1080 cv_val.ul = strtoul (wbuf, &tmp_wbuf_ptr, base);
1081 }
1082 if (wbuf == tmp_wbuf_ptr)
1083 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1084
1085 if ((flags & IS_SUPPRESSED) == 0)
1086 {
1087 if ((flags & IS_SIGNED_NUM) != 0)
1088 {
1089 if ((flags & IS_LL) != 0)
1090 *(npos != 0 ? (long long *) get_va_nth (argp, npos) : va_arg (arg, long long *)) = cv_val.ll;
1091 else if ((flags & IS_L) != 0)
1092 *(npos != 0 ? (long *) get_va_nth (argp, npos) : va_arg (arg, long *)) = cv_val.l;
1093 else if ((flags & IS_S) != 0)
1094 *(npos != 0 ? (short *) get_va_nth (argp, npos) : va_arg (arg, short *)) = (short) cv_val.l;
1095 else if ((flags & IS_C) != 0)
1096 *(npos != 0 ? (signed char *) get_va_nth (argp, npos) : va_arg (arg, signed char *)) = (signed char) cv_val.ul;
1097 else
1098 *(npos != 0 ? (int *) get_va_nth (argp, npos) : va_arg (arg, int *)) = (int) cv_val.l;
1099 }
1100 else
1101 {
1102 if ((flags & IS_LL) != 0)
1103 *(npos != 0 ? (unsigned long long *) get_va_nth (argp, npos) : va_arg (arg, unsigned long long *)) = cv_val.ull;
1104 else if ((flags & IS_L) != 0)
1105 *(npos != 0 ? (unsigned long *) get_va_nth (argp, npos) : va_arg (arg, unsigned long *)) = cv_val.ul;
1106 else if ((flags & IS_S) != 0)
1107 *(npos != 0 ? (unsigned short *) get_va_nth (argp, npos) : va_arg (arg, unsigned short *))
1108 = (unsigned short) cv_val.ul;
1109 else if ((flags & IS_C) != 0)
1110 *(npos != 0 ? (unsigned char *) get_va_nth (argp, npos) : va_arg (arg, unsigned char *)) = (unsigned char) cv_val.ul;
1111 else
1112 *(npos != 0 ? (unsigned int *) get_va_nth (argp, npos) : va_arg (arg, unsigned int *)) = (unsigned int) cv_val.ul;
1113 }
1114 ++rval;
1115 }
1116 break;
1117
1118 case 'e': case 'E':
1119 case 'f': case 'F':
1120 case 'g': case 'G':
1121 case 'a': case 'A':
1122 if (width > 0)
1123 --width;
1124 if ((c = in_ch (s, &read_in)) == EOF)
1125 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
1126
1127 seen_dot = seen_exp = 0;
1128 is_neg = (c == '-' ? 1 : 0);
1129
1130 if (c == '-' || c == '+')
1131 {
1132 if (width == 0 || (c = in_ch (s, &read_in)) == EOF)
1133 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1134 if (width > 0)
1135 --width;
1136 }
1137
1138 if (tolower (c) == 'n')
1139 {
1140 const char *match_txt = "nan";
1141
1142 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1143 wbuf[wbuf_cur_sz++] = c;
1144
1145 ++match_txt;
1146 do
1147 {
1148 if (width == 0 || (c = in_ch (s, &read_in)) == EOF || tolower (c) != match_txt[0])
1149 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1150
1151 if (width > 0)
1152 --width;
1153
1154 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1155 wbuf[wbuf_cur_sz++] = c;
1156 ++match_txt;
1157 }
1158 while (*match_txt != 0);
1159 }
1160 else if (tolower (c) == 'i')
1161 {
1162 const char *match_txt = "inf";
1163
1164 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1165 wbuf[wbuf_cur_sz++] = c;
1166
1167 ++match_txt;
1168 do
1169 {
1170 if (width == 0 || (c = in_ch (s, &read_in)) == EOF || tolower (c) != match_txt[0])
1171 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1172 if (width > 0)
1173 --width;
1174
1175 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1176 wbuf[wbuf_cur_sz++] = c;
1177 ++match_txt;
1178 }
1179 while (*match_txt != 0);
1180
1181 if (width != 0 && (c = in_ch (s, &read_in)) != EOF && tolower (c) == 'i')
1182 {
1183 match_txt = "inity";
1184
1185 if (width > 0)
1186 --width;
1187
1188 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1189 wbuf[wbuf_cur_sz++] = c;
1190 ++match_txt;
1191
1192 do
1193 {
1194 if (width == 0 || (c = in_ch (s, &read_in)) == EOF || tolower (c) != match_txt[0])
1195 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1196 if (width > 0)
1197 --width;
1198
1199 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1200 wbuf[wbuf_cur_sz++] = c;
1201 ++match_txt;
1202 }
1203 while (*match_txt != 0);
1204 }
1205 else if (width != 0 && c != EOF)
1206 back_ch (c, s, &read_in, 0);
1207 }
1208 else
1209 {
1210 not_in = 'e';
1211 if (width != 0 && c == '0')
1212 {
1213 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1214 wbuf[wbuf_cur_sz++] = c;
1215
1216 c = in_ch (s, &read_in);
1217 if (width > 0)
1218 --width;
1219 if (width != 0 && tolower (c) == 'x')
1220 {
1221 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1222 wbuf[wbuf_cur_sz++] = c;
1223
1224 flags |= IS_HEX_FLOAT;
1225 not_in = 'p';
1226
1227 flags &= ~USE_GROUP;
1228 c = in_ch (s, &read_in);
1229 if (width > 0)
1230 --width;
1231 }
1232 }
1233
1234 while (1)
1235 {
1236 if (isdigit (c) || (!seen_exp && (flags & IS_HEX_FLOAT) != 0 && isxdigit (c))
1237 || (seen_exp && wbuf[wbuf_cur_sz - 1] == not_in && (c == '-' || c == '+')))
1238 {
1239 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1240 wbuf[wbuf_cur_sz++] = c;
1241 }
1242 else if (wbuf_cur_sz > 0 && !seen_exp && (char) tolower (c) == not_in)
1243 {
1244 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1245 wbuf[wbuf_cur_sz++] = not_in;
1246 seen_exp = seen_dot = 1;
1247 }
1248 else
1249 {
1250 const char *p = lc_decimal_point;
1251 int remain = width > 0 ? width : INT_MAX;
1252
1253 if (! seen_dot)
1254 {
1255 while ((unsigned char) *p == c && remain >= 0)
1256 {
1257 ++p;
1258 if (*p == 0 || !remain || (c = in_ch (s, &read_in)) == EOF)
1259 break;
1260 --remain;
1261 }
1262 }
1263
1264 if (*p == 0)
1265 {
1266 for (p = lc_decimal_point; *p != 0; ++p)
1267 {
1268 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1269 wbuf[wbuf_cur_sz++] = (unsigned char) *p;
1270 }
1271 if (width > 0)
1272 width = remain;
1273 seen_dot = 1;
1274 }
1275 else
1276 {
1277 const char *pp = lc_thousands_sep;
1278
1279 if (!seen_dot && (flags & USE_GROUP) != 0)
1280 {
1281 while ((pp - lc_thousands_sep) < (p - lc_decimal_point)
1282 && *pp == lc_decimal_point[(pp - lc_thousands_sep)])
1283 ++pp;
1284 if ((pp - lc_thousands_sep) == (p - lc_decimal_point))
1285 {
1286 while ((unsigned char) *pp == c && remain >= 0)
1287 {
1288 ++pp;
1289 if (*pp == 0 || !remain || (c = in_ch (s, &read_in)) == EOF)
1290 break;
1291 --remain;
1292 }
1293 }
1294 }
1295
1296 if (pp != NULL && *pp == 0)
1297 {
1298 /* As our conversion routines aren't supporting thousands
1299 separators, we are filtering them here. */
1300 if (width > 0)
1301 width = remain;
1302 }
1303 else
1304 {
1305 back_ch (c, s, &read_in, 0);
1306 break;
1307 }
1308 }
1309 }
1310
1311 if (width == 0 || (c = in_ch (s, &read_in)) == EOF)
1312 break;
1313
1314 if (width > 0)
1315 --width;
1316 }
1317
1318 if (!wbuf_cur_sz || ((flags & IS_HEX_FLOAT) != 0 && wbuf_cur_sz == 2))
1319 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1320 }
1321
1322 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1323 wbuf[wbuf_cur_sz++] = 0;
1324
1325 if ((flags & IS_LL) != 0)
1326 {
1327 long double ld;
1328 ld = __mingw_strtold (wbuf, &tmp_wbuf_ptr/*, flags & USE_GROUP*/);
1329 if ((flags & IS_SUPPRESSED) == 0 && tmp_wbuf_ptr != wbuf)
1330 *(npos != 0 ? (long double *) get_va_nth (argp, npos) : va_arg (arg, long double *)) = is_neg ? -ld : ld;
1331 }
1332 else if ((flags & IS_L) != 0)
1333 {
1334 double d;
1335 d = (double) __mingw_strtold (wbuf, &tmp_wbuf_ptr/*, flags & USE_GROUP*/);
1336 if ((flags & IS_SUPPRESSED) == 0 && tmp_wbuf_ptr != wbuf)
1337 *(npos != 0 ? (double *) get_va_nth (argp, npos) : va_arg (arg, double *)) = is_neg ? -d : d;
1338 }
1339 else
1340 {
1341 float d = __mingw_strtof (wbuf, &tmp_wbuf_ptr/*, flags & USE_GROUP*/);
1342 if ((flags & IS_SUPPRESSED) == 0 && tmp_wbuf_ptr != wbuf)
1343 *(npos != 0 ? (float *) get_va_nth (argp, npos) : va_arg (arg, float *)) = is_neg ? -d : d;
1344 }
1345
1346 if (wbuf == tmp_wbuf_ptr)
1347 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1348
1349 if ((flags & IS_SUPPRESSED) == 0)
1350 ++rval;
1351 break;
1352
1353 case '[':
1354 if ((flags & IS_L) != 0)
1355 {
1356 if ((flags & IS_SUPPRESSED) == 0)
1357 {
1358 if ((flags & IS_ALLOC_USED) != 0)
1359 {
1360 if (npos != 0)
1361 pstr = (char **) get_va_nth (argp, npos);
1362 else
1363 pstr = va_arg (arg, char **);
1364
1365 if (!pstr)
1366 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1367
1368 str_sz = 100;
1369 *pstr = (char *) malloc (100 * sizeof (wchar_t));
1370
1371 if ((wstr = (wchar_t *) *pstr) == NULL)
1372 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
1373 gcollect = resize_gcollect (gcollect);
1374 gcollect->ptrs[gcollect->count++] = pstr;
1375 }
1376 else
1377 {
1378 if (npos != 0)
1379 wstr = (wchar_t *) get_va_nth (argp, npos);
1380 else
1381 wstr = va_arg (arg, wchar_t *);
1382 if (!wstr)
1383 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1384 }
1385 }
1386 }
1387 else if ((flags & IS_SUPPRESSED) == 0)
1388 {
1389 if ((flags & IS_ALLOC_USED) != 0)
1390 {
1391 if (npos != 0)
1392 pstr = (char **) get_va_nth (argp, npos);
1393 else
1394 pstr = va_arg (arg, char **);
1395
1396 if (!pstr)
1397 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1398
1399 str_sz = 100;
1400 if ((str = *pstr = (char *) malloc (100)) == NULL)
1401 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
1402
1403 gcollect = resize_gcollect (gcollect);
1404 gcollect->ptrs[gcollect->count++] = pstr;
1405 }
1406 else
1407 {
1408 if (npos != 0)
1409 str = (char *) get_va_nth (argp, npos);
1410 else
1411 str = va_arg (arg, char *);
1412 if (!str)
1413 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1414 }
1415 }
1416
1417 not_in = (*f == '^' ? 1 : 0);
1418 if (*f == '^')
1419 f++;
1420
1421 if (width < 0)
1422 width = INT_MAX;
1423
1424 if (wbuf_max_sz < 256)
1425 {
1426 wbuf_max_sz = 256;
1427 if (wbuf)
1428 free (wbuf);
1429 wbuf = (char *) malloc (wbuf_max_sz);
1430 }
1431 memset (wbuf, 0, 256);
1432
1433 fc = *f;
1434 if (fc == ']' || fc == '-')
1435 {
1436 wbuf[fc] = 1;
1437 ++f;
1438 }
1439
1440 while ((fc = *f++) != 0 && fc != ']')
1441 {
1442 if (fc == '-' && *f != 0 && *f != ']' && (unsigned char) f[-2] <= (unsigned char) *f)
1443 {
1444 for (fc = (unsigned char) f[-2]; fc < (unsigned char) *f; ++fc)
1445 wbuf[fc] = 1;
1446 }
1447 else
1448 wbuf[fc] = 1;
1449 }
1450
1451 if (!fc)
1452 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1453
1454 if ((flags & IS_L) != 0)
1455 {
1456 read_in_sv = read_in;
1457 cnt = 0;
1458
1459 if ((c = in_ch (s, &read_in)) == EOF)
1460 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
1461
1462 memset (&cstate, 0, sizeof (cstate));
1463
1464 do
1465 {
1466 if (wbuf[c] == not_in)
1467 {
1468 back_ch (c, s, &read_in, 1);
1469 break;
1470 }
1471
1472 if ((flags & IS_SUPPRESSED) == 0)
1473 {
1474 buf[0] = c;
1475 n = mbrtowc (wstr, buf, 1, &cstate);
1476
1477 if (n == (size_t) -2)
1478 {
1479 ++cnt;
1480 continue;
1481 }
1482 cnt = 0;
1483
1484 ++wstr;
1485 if ((flags & IS_ALLOC_USED) != 0 && wstr == ((wchar_t *) *pstr + str_sz))
1486 {
1487 new_sz = str_sz * 2;
1488 while ((wstr = (wchar_t *) realloc (*pstr, new_sz * sizeof (wchar_t))) == NULL
1489 && new_sz > (size_t) (str_sz + 1))
1490 new_sz = str_sz + 1;
1491 if (!wstr)
1492 {
1493 if ((flags & USE_POSIX_ALLOC) == 0)
1494 {
1495 ((wchar_t *) (*pstr))[str_sz - 1] = 0;
1496 pstr = NULL;
1497 ++rval;
1498 }
1499 else
1500 rval = EOF;
1501 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1502 }
1503 *pstr = (char *) wstr;
1504 wstr += str_sz;
1505 str_sz = new_sz;
1506 }
1507 }
1508
1509 if (--width <= 0)
1510 break;
1511 }
1512 while ((c = in_ch (s, &read_in)) != EOF);
1513
1514 if (cnt != 0)
1515 {
1516 errno = EILSEQ;
1517 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1518 }
1519
1520 if (read_in_sv == read_in)
1521 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1522
1523
1524 if ((flags & IS_SUPPRESSED) == 0)
1525 {
1526 *wstr++ = 0;
1527 optimize_alloc (pstr, (char *) wstr, str_sz * sizeof (wchar_t));
1528 pstr = NULL;
1529 ++rval;
1530 }
1531 }
1532 else
1533 {
1534 read_in_sv = read_in;
1535
1536 if ((c = in_ch (s, &read_in)) == EOF)
1537 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
1538
1539 do
1540 {
1541 if (wbuf[c] == not_in)
1542 {
1543 back_ch (c, s, &read_in, 1);
1544 break;
1545 }
1546
1547 if ((flags & IS_SUPPRESSED) == 0)
1548 {
1549 *str++ = c;
1550 if ((flags & IS_ALLOC_USED) != 0 && str == (*pstr + str_sz))
1551 {
1552 new_sz = str_sz * 2;
1553
1554 while ((str = (char *) realloc (*pstr, new_sz)) == NULL
1555 && new_sz > (size_t) (str_sz + 1))
1556 new_sz = str_sz + 1;
1557 if (!str)
1558 {
1559 if ((flags & USE_POSIX_ALLOC) == 0)
1560 {
1561 (*pstr)[str_sz - 1] = 0;
1562 pstr = NULL;
1563 ++rval;
1564 }
1565 else
1566 rval = EOF;
1567 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1568 }
1569 *pstr = str;
1570 str += str_sz;
1571 str_sz = new_sz;
1572 }
1573 }
1574 }
1575 while (--width > 0 && (c = in_ch (s, &read_in)) != EOF);
1576
1577 if (read_in_sv == read_in)
1578 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1579
1580 if ((flags & IS_SUPPRESSED) == 0)
1581 {
1582 *str++ = 0;
1583 optimize_alloc (pstr, str, str_sz);
1584 pstr = NULL;
1585 ++rval;
1586 }
1587 }
1588 break;
1589
1590 default:
1591 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1592 }
1593 }
1594
1595 if (ignore_ws)
1596 {
1597 while (isspace ((c = in_ch (s, &read_in))));
1598 back_ch (c, s, &read_in, 0);
1599 }
1600
1601 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1602}
lib/libc/mingw/stdio/mingw_sformat.h created+63
...@@ -0,0 +1,63 @@
1/*
2 This Software is provided under the Zope Public License (ZPL) Version 2.1.
3
4 Copyright (c) 2011 by the mingw-w64 project
5
6 See the AUTHORS file for the list of contributors to the mingw-w64 project.
7
8 This license has been certified as open source. It has also been designated
9 as GPL compatible by the Free Software Foundation (FSF).
10
11 Redistribution and use in source and binary forms, with or without
12 modification, are permitted provided that the following conditions are met:
13
14 1. Redistributions in source code must retain the accompanying copyright
15 notice, this list of conditions, and the following disclaimer.
16 2. Redistributions in binary form must reproduce the accompanying
17 copyright notice, this list of conditions, and the following disclaimer
18 in the documentation and/or other materials provided with the
19 distribution.
20 3. Names of the copyright holders must not be used to endorse or promote
21 products derived from this software without prior written permission
22 from the copyright holders.
23 4. The right to distribute this software or to use it for any purpose does
24 not give you the right to use Servicemarks (sm) or Trademarks (tm) of
25 the copyright holders. Use of them is covered by separate agreement
26 with the copyright holders.
27 5. If any files are modified, you must cause the modified files to carry
28 prominent notices stating that you changed the files and the date of
29 any change.
30
31 Disclaimer
32
33 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
34 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
35 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
36 EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
37 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
38 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
39 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
40 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
41 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
42 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43*/
44
45#ifndef SFORMAT_H
46#define SFORMAT_H
47
48/* internal stream structure with back-buffer. */
49typedef struct _IFP
50{
51 __extension__ union {
52 void *fp;
53 const char *str;
54 };
55 int bch[1024];
56 unsigned int is_string : 1;
57 int back_top;
58 unsigned int seen_eof : 1;
59} _IFP;
60
61int __cdecl __mingw_sformat(_IFP *, const char *, va_list) __MINGW_NOTHROW;
62
63#endif /* !defined SFORMAT_H */
lib/libc/mingw/stdio/mingw_snprintfw.c deleted-9
...@@ -1,9 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7
8#include "mingw_snprintf.c"
9
lib/libc/mingw/stdio/mingw_snwprintf.c created+9
...@@ -0,0 +1,9 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7
8#include "mingw_snprintf.c"
9
lib/libc/mingw/stdio/mingw_sprintfw.c deleted-10
...@@ -1,10 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7#define _CRT_NON_CONFORMING_SWPRINTFS 1
8
9#include "mingw_sprintf.c"
10
lib/libc/mingw/stdio/mingw_swformat.c created+1601
...@@ -0,0 +1,1601 @@
1/*
2 This Software is provided under the Zope Public License (ZPL) Version 2.1.
3
4 Copyright (c) 2011 by the mingw-w64 project
5
6 See the AUTHORS file for the list of contributors to the mingw-w64 project.
7
8 This license has been certified as open source. It has also been designated
9 as GPL compatible by the Free Software Foundation (FSF).
10
11 Redistribution and use in source and binary forms, with or without
12 modification, are permitted provided that the following conditions are met:
13
14 1. Redistributions in source code must retain the accompanying copyright
15 notice, this list of conditions, and the following disclaimer.
16 2. Redistributions in binary form must reproduce the accompanying
17 copyright notice, this list of conditions, and the following disclaimer
18 in the documentation and/or other materials provided with the
19 distribution.
20 3. Names of the copyright holders must not be used to endorse or promote
21 products derived from this software without prior written permission
22 from the copyright holders.
23 4. The right to distribute this software or to use it for any purpose does
24 not give you the right to use Servicemarks (sm) or Trademarks (tm) of
25 the copyright holders. Use of them is covered by separate agreement
26 with the copyright holders.
27 5. If any files are modified, you must cause the modified files to carry
28 prominent notices stating that you changed the files and the date of
29 any change.
30
31 Disclaimer
32
33 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
34 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
35 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
36 EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
37 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
38 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
39 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
40 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
41 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
42 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43*/
44
45#define __LARGE_MBSTATE_T
46
47#include <limits.h>
48#include <stddef.h>
49#include <stdarg.h>
50#include <stdio.h>
51#include <stdint.h>
52#include <stdlib.h>
53#include <string.h>
54#include <wchar.h>
55#include <ctype.h>
56#include <wctype.h>
57#include <locale.h>
58#include <errno.h>
59
60#include "mingw_swformat.h"
61
62#ifndef CP_UTF8
63#define CP_UTF8 65001
64#endif
65
66#ifndef MB_ERR_INVALID_CHARS
67#define MB_ERR_INVALID_CHARS 0x00000008
68#endif
69
70/* Helper flags for conversion. */
71#define IS_C 0x0001
72#define IS_S 0x0002
73#define IS_L 0x0004
74#define IS_LL 0x0008
75#define IS_SIGNED_NUM 0x0010
76#define IS_POINTER 0x0020
77#define IS_HEX_FLOAT 0x0040
78#define IS_SUPPRESSED 0x0080
79#define USE_GROUP 0x0100
80#define USE_GNU_ALLOC 0x0200
81#define USE_POSIX_ALLOC 0x0400
82
83#define IS_ALLOC_USED (USE_GNU_ALLOC | USE_POSIX_ALLOC)
84
85static void *
86get_va_nth (va_list argp, unsigned int n)
87{
88 va_list ap;
89 if (!n)
90 abort ();
91 va_copy (ap, argp);
92 while (--n > 0)
93 (void) va_arg(ap, void *);
94 return va_arg (ap, void *);
95}
96
97static void
98optimize_alloc (char **p, char *end, size_t alloc_sz)
99{
100 size_t need_sz;
101 char *h;
102
103 if (!p || !*p)
104 return;
105
106 need_sz = end - *p;
107 if (need_sz == alloc_sz)
108 return;
109
110 if ((h = (char *) realloc (*p, need_sz)) != NULL)
111 *p = h;
112}
113
114static void
115back_ch (int c, _IFPW *s, size_t *rin, int not_eof)
116{
117 if (!not_eof && c == WEOF)
118 return;
119 if (s->is_string == 0)
120 {
121 FILE *fp = s->fp;
122 ungetwc (c, fp);
123 rin[0] -= 1;
124 return;
125 }
126 rin[0] -= 1;
127 s->bch[s->back_top] = c;
128 s->back_top += 1;
129}
130
131static int
132in_ch (_IFPW *s, size_t *rin)
133{
134 int r;
135 if (s->back_top)
136 {
137 s->back_top -= 1;
138 r = s->bch[s->back_top];
139 rin[0] += 1;
140 }
141 else if (s->seen_eof)
142 {
143 return WEOF;
144 }
145 else if (s->is_string)
146 {
147 const wchar_t *ps = s->str;
148 r = ((int) *ps) & 0xffff;
149 ps++;
150 if (r != 0)
151 {
152 rin[0] += 1;
153 s->str = ps;
154 return r;
155 }
156 s->seen_eof = 1;
157 return WEOF;
158 }
159 else
160 {
161 FILE *fp = (FILE *) s->fp;
162 r = getwc (fp);
163 if (r != WEOF)
164 rin[0] += 1;
165 else s->seen_eof = 1;
166 }
167 return r;
168}
169
170static int
171match_string (_IFPW *s, size_t *rin, wint_t *c, const wchar_t *str)
172{
173 int ch = *c;
174
175 if (*str == 0)
176 return 1;
177
178 if (*str != (wchar_t) towlower (ch))
179 return 0;
180 ++str;
181 while (*str != 0)
182 {
183 if ((ch = in_ch (s, rin)) == WEOF)
184 {
185 c[0] = ch;
186 return 0;
187 }
188
189 if (*str != (wchar_t) towlower (ch))
190 {
191 c[0] = ch;
192 return 0;
193 }
194 ++str;
195 }
196 c[0] = ch;
197 return 1;
198}
199
200struct gcollect
201{
202 size_t count;
203 struct gcollect *next;
204 char **ptrs[32];
205};
206
207static void
208release_ptrs (struct gcollect **pt, wchar_t **wbuf)
209{
210 struct gcollect *pf;
211 size_t cnt;
212
213 if (wbuf)
214 {
215 free (*wbuf);
216 *wbuf = NULL;
217 }
218 if (!pt || (pf = *pt) == NULL)
219 return;
220 while (pf != NULL)
221 {
222 struct gcollect *pf_sv = pf;
223 for (cnt = 0; cnt < pf->count; ++cnt)
224 {
225 free (*pf->ptrs[cnt]);
226 *pf->ptrs[cnt] = NULL;
227 }
228 pf = pf->next;
229 free (pf_sv);
230 }
231 *pt = NULL;
232}
233
234static int
235cleanup_return (int rval, struct gcollect **pfree, char **strp, wchar_t **wbuf)
236{
237 if (rval == EOF)
238 release_ptrs (pfree, wbuf);
239 else
240 {
241 if (pfree)
242 {
243 struct gcollect *pf = *pfree, *pf_sv;
244 while (pf != NULL)
245 {
246 pf_sv = pf;
247 pf = pf->next;
248 free (pf_sv);
249 }
250 *pfree = NULL;
251 }
252 if (strp != NULL)
253 {
254 free (*strp);
255 *strp = NULL;
256 }
257 if (wbuf)
258 {
259 free (*wbuf);
260 *wbuf = NULL;
261 }
262 }
263 return rval;
264}
265
266static struct gcollect *
267resize_gcollect (struct gcollect *pf)
268{
269 struct gcollect *np;
270 if (pf && pf->count < 32)
271 return pf;
272 np = malloc (sizeof (struct gcollect));
273 np->count = 0;
274 np->next = pf;
275 return np;
276}
277
278static wchar_t *
279resize_wbuf (size_t wpsz, size_t *wbuf_max_sz, wchar_t *old)
280{
281 wchar_t *wbuf;
282 size_t nsz;
283 if (*wbuf_max_sz != wpsz)
284 return old;
285 nsz = (256 > (2 * wbuf_max_sz[0]) ? 256 : (2 * wbuf_max_sz[0]));
286 if (!old)
287 wbuf = (wchar_t *) malloc (nsz * sizeof (wchar_t));
288 else
289 wbuf = (wchar_t *) realloc (old, nsz * sizeof (wchar_t));
290 if (!wbuf)
291 {
292 if (old)
293 free (old);
294 }
295 else
296 *wbuf_max_sz = nsz;
297 return wbuf;
298}
299
300int
301__cdecl
302__mingw_swformat (_IFPW *s, const wchar_t *format, va_list argp)
303{
304 const wchar_t *f = format;
305 struct gcollect *gcollect = NULL;
306 size_t read_in = 0, wbuf_max_sz = 0;
307 ssize_t str_sz = 0;
308 char *str = NULL, **pstr = NULL;;
309 wchar_t *wstr = NULL, *wbuf = NULL;
310 wint_t c = 0, rval = 0;
311 int ignore_ws = 0;
312 va_list arg;
313 size_t wbuf_cur_sz, str_len, read_in_sv, new_sz, n;
314 unsigned int fc, npos;
315 int width, flags, base = 0, errno_sv, clen;
316 char seen_dot, seen_exp, is_neg, *nstr, buf[MB_LEN_MAX];
317 wchar_t wc, not_in, *tmp_wbuf_ptr, *temp_wbuf_end, *wbuf_iter;
318 wint_t lc_decimal_point, lc_thousands_sep;
319 mbstate_t state;
320 union {
321 unsigned long long ull;
322 unsigned long ul;
323 long long ll;
324 long l;
325 } cv_val;
326
327 arg = argp;
328
329 if (!s || s->fp == NULL || !format)
330 {
331 errno = EINVAL;
332 return EOF;
333 }
334
335 memset (&state, 0, sizeof(state));
336 clen = mbrtowc( &wc, localeconv()->decimal_point, 16, &state);
337 lc_decimal_point = (clen > 0 ? wc : '.');
338 memset( &state, 0, sizeof( state ) );
339 clen = mbrtowc( &wc, localeconv()->thousands_sep, 16, &state);
340 lc_thousands_sep = (clen > 0 ? wc : 0);
341
342 while (*f != 0)
343 {
344 fc = *f++;
345 if (fc != '%')
346 {
347 if (iswspace (fc))
348 ignore_ws = 1;
349 else
350 {
351 if ((c = in_ch (s, &read_in)) == WEOF)
352 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
353
354 if (ignore_ws)
355 {
356 ignore_ws = 0;
357 if (iswspace (c))
358 {
359 do
360 {
361 if ((c = in_ch (s, &read_in)) == WEOF)
362 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
363 }
364 while (iswspace (c));
365 }
366 }
367
368 if (c != fc)
369 {
370 back_ch (c, s, &read_in, 0);
371 return cleanup_return (rval, &gcollect, pstr, &wbuf);
372 }
373 }
374
375 continue;
376 }
377
378 width = flags = 0;
379 npos = 0;
380 wbuf_cur_sz = 0;
381
382 if (iswdigit ((unsigned int) *f))
383 {
384 const wchar_t *svf = f;
385 npos = (unsigned int) *f++ - '0';
386 while (iswdigit ((unsigned int) *f))
387 npos = npos * 10 + ((unsigned int) *f++ - '0');
388 if (*f != '$')
389 {
390 npos = 0;
391 f = svf;
392 }
393 else
394 f++;
395 }
396
397 do
398 {
399 if (*f == '*')
400 flags |= IS_SUPPRESSED;
401 else if (*f == '\'')
402 {
403 if (lc_thousands_sep)
404 flags |= USE_GROUP;
405 }
406 else if (*f == 'I')
407 {
408 /* we don't support locale's digits (i18N), but ignore it for now silently. */
409 ;
410#ifdef _WIN32
411 if (f[1] == '6' && f[2] == '4')
412 {
413 flags |= IS_LL | IS_L;
414 f += 2;
415 }
416 else if (f[1] == '3' && f[2] == '2')
417 {
418 flags |= IS_L;
419 f += 2;
420 }
421 else
422 {
423#ifdef _WIN64
424 flags |= IS_LL | IS_L;
425#else
426 flags |= IS_L;
427#endif
428 }
429#endif
430 }
431 else
432 break;
433 ++f;
434 }
435 while (1);
436
437 while (iswdigit ((unsigned char) *f))
438 width = width * 10 + ((unsigned char) *f++ - '0');
439
440 if (!width)
441 width = -1;
442
443 switch (*f)
444 {
445 case 'h':
446 ++f;
447 flags |= (*f == 'h' ? IS_C : IS_S);
448 if (*f == 'h')
449 ++f;
450 break;
451 case 'l':
452 ++f;
453 flags |= (*f == 'l' ? IS_LL : 0) | IS_L;
454 if (*f == 'l')
455 ++f;
456 break;
457 case 'q': case 'L':
458 ++f;
459 flags |= IS_LL | IS_L;
460 break;
461 case 'a':
462 if (f[1] != 's' && f[1] != 'S' && f[1] != '[')
463 break;
464 ++f;
465 flags |= USE_GNU_ALLOC;
466 break;
467 case 'm':
468 flags |= USE_POSIX_ALLOC;
469 ++f;
470 if (*f == 'l')
471 {
472 flags |= IS_L;
473 ++f;
474 }
475 break;
476 case 'z':
477#ifdef _WIN64
478 flags |= IS_LL | IS_L;
479#else
480 flags |= IS_L;
481#endif
482 ++f;
483 break;
484 case 'j':
485 if (sizeof (uintmax_t) > sizeof (unsigned long))
486 flags |= IS_LL;
487 else if (sizeof (uintmax_t) > sizeof (unsigned int))
488 flags |= IS_L;
489 ++f;
490 break;
491 case 't':
492#ifdef _WIN64
493 flags |= IS_LL;
494#else
495 flags |= IS_L;
496#endif
497 ++f;
498 break;
499 case 0:
500 return cleanup_return (rval, &gcollect, pstr, &wbuf);
501 default:
502 break;
503 }
504
505 if (*f == 0)
506 return cleanup_return (rval, &gcollect, pstr, &wbuf);
507
508 fc = *f++;
509 if (ignore_ws || (fc != '[' && fc != 'c' && fc != 'C' && fc != 'n'))
510 {
511 errno_sv = errno;
512 errno = 0;
513 do
514 {
515 if ((c == WEOF || (c = in_ch (s, &read_in)) == WEOF) && errno == EINTR)
516 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
517 }
518 while (iswspace (c));
519
520 ignore_ws = 0;
521 errno = errno_sv;
522 back_ch (c, s, &read_in, 0);
523 }
524
525 switch (fc)
526 {
527 case 'c':
528 if ((flags & IS_L) != 0)
529 fc = 'C';
530 break;
531 case 's':
532 if ((flags & IS_L) != 0)
533 fc = 'S';
534 break;
535 }
536
537 switch (fc)
538 {
539 case '%':
540 if ((c = in_ch (s, &read_in)) == WEOF)
541 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
542 if (c != fc)
543 {
544 back_ch (c, s, &read_in, 1);
545 return cleanup_return (rval, &gcollect, pstr, &wbuf);
546 }
547 break;
548
549 case 'n':
550 if ((flags & IS_SUPPRESSED) == 0)
551 {
552 if ((flags & IS_LL) != 0)
553 *(npos != 0 ? (long long *) get_va_nth (argp, npos) : va_arg (arg, long long *)) = read_in;
554 else if ((flags & IS_L) != 0)
555 *(npos != 0 ? (long *) get_va_nth (argp, npos) : va_arg (arg, long *)) = read_in;
556 else if ((flags & IS_S) != 0)
557 *(npos != 0 ? (short *) get_va_nth (argp, npos) : va_arg (arg, short *)) = read_in;
558 else if ((flags & IS_C) != 0)
559 *(npos != 0 ? (char *) get_va_nth (argp, npos) : va_arg (arg, char *)) = read_in;
560 else
561 *(npos != 0 ? (int *) get_va_nth (argp, npos) : va_arg (arg, int *)) = read_in;
562 }
563 break;
564
565 case 'c':
566 if (width == -1)
567 width = 1;
568
569 if ((flags & IS_SUPPRESSED) == 0)
570 {
571 if ((flags & IS_ALLOC_USED) != 0)
572 {
573 if (npos != 0)
574 pstr = (char **) get_va_nth (argp, npos);
575 else
576 pstr = va_arg (arg, char **);
577
578 if (!pstr)
579 return cleanup_return (rval, &gcollect, pstr, &wbuf);
580 str_sz = 100;
581 if ((str = *pstr = (char *) malloc (100)) == NULL)
582 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
583 gcollect = resize_gcollect (gcollect);
584 gcollect->ptrs[gcollect->count++] = pstr;
585 }
586 else
587 {
588 if (npos != 0)
589 str = (char *) get_va_nth (argp, npos);
590 else
591 str = va_arg (arg, char *);
592 if (!str)
593 return cleanup_return (rval, &gcollect, pstr, &wbuf);
594 }
595 }
596 if ((c = in_ch (s, &read_in)) == WEOF)
597 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
598
599 memset (&state, 0, sizeof (state));
600
601 do
602 {
603 if ((flags & IS_SUPPRESSED) == 0 && (flags & USE_POSIX_ALLOC) != 0
604 && (str + MB_CUR_MAX) >= (*pstr + str_sz))
605 {
606 new_sz = str_sz * 2;
607 str_len = (str - *pstr);
608 while ((nstr = (char *) realloc (*pstr, new_sz)) == NULL
609 && new_sz > (str_len + MB_CUR_MAX))
610 new_sz = str_len + MB_CUR_MAX;
611 if (!nstr)
612 {
613 release_ptrs (&gcollect, &wbuf);
614 return EOF;
615 }
616 *pstr = nstr;
617 str = nstr + str_len;
618 str_sz = new_sz;
619 }
620
621 n = wcrtomb ((flags & IS_SUPPRESSED) == 0 ? str : NULL, c, &state);
622 if (n == (size_t) -1LL)
623 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
624 str += n;
625 }
626 while (--width > 0 && (c = in_ch (s, &read_in)) != WEOF);
627
628 if ((flags & IS_SUPPRESSED) == 0)
629 {
630 optimize_alloc (pstr, str, str_sz);
631 pstr = NULL;
632 ++rval;
633 }
634
635 break;
636
637 case 'C':
638 if (width == -1)
639 width = 1;
640
641 if ((flags & IS_SUPPRESSED) == 0)
642 {
643 if ((flags & IS_ALLOC_USED) != 0)
644 {
645 if (npos != 0)
646 pstr = (char **) get_va_nth (argp, npos);
647 else
648 pstr = va_arg (arg, char **);
649
650 if (!pstr)
651 return cleanup_return (rval, &gcollect, pstr, &wbuf);
652 str_sz = (width > 1024 ? 1024 : width);
653 *pstr = (char *) malloc (str_sz * sizeof (wchar_t));
654 if ((wstr = (wchar_t *) *pstr) == NULL)
655 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
656
657 if ((wstr = (wchar_t *) *pstr) != NULL)
658 {
659 gcollect = resize_gcollect (gcollect);
660 gcollect->ptrs[gcollect->count++] = pstr;
661 }
662 }
663 else
664 {
665 if (npos != 0)
666 wstr = (wchar_t *) get_va_nth (argp, npos);
667 else
668 wstr = va_arg (arg, wchar_t *);
669 if (!wstr)
670 return cleanup_return (rval, &gcollect, pstr, &wbuf);
671 }
672 }
673
674 if ((c = in_ch (s, &read_in)) == WEOF)
675 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
676
677 if ((flags & IS_SUPPRESSED) == 0)
678 {
679 do
680 {
681 if ((flags & IS_ALLOC_USED) != 0
682 && wstr == ((wchar_t *) *pstr + str_sz))
683 {
684 new_sz = str_sz + (str_sz > width ? width - 1 : str_sz);
685 while ((wstr = (wchar_t *) realloc (*pstr,
686 new_sz * sizeof (wchar_t))) == NULL
687 && new_sz > (size_t) (str_sz + 1))
688 new_sz = str_sz + 1;
689 if (!wstr)
690 {
691 release_ptrs (&gcollect, &wbuf);
692 return EOF;
693 }
694 *pstr = (char *) wstr;
695 wstr += str_sz;
696 str_sz = new_sz;
697 }
698 *wstr++ = c;
699 }
700 while (--width > 0 && (c = in_ch (s, &read_in)) != WEOF);
701 }
702 else
703 {
704 while (--width > 0 && (c = in_ch (s, &read_in)) != WEOF);
705 }
706
707 if ((flags & IS_SUPPRESSED) == 0)
708 {
709 optimize_alloc (pstr, (char *) wstr, str_sz * sizeof (wchar_t));
710 pstr = NULL;
711 ++rval;
712 }
713 break;
714
715 case 's':
716 if ((flags & IS_SUPPRESSED) == 0)
717 {
718 if ((flags & IS_ALLOC_USED) != 0)
719 {
720 if (npos != 0)
721 pstr = (char **) get_va_nth (argp, npos);
722 else
723 pstr = va_arg (arg, char **);
724
725 if (!pstr)
726 return cleanup_return (rval, &gcollect, pstr, &wbuf);
727 str_sz = 100;
728 if ((str = *pstr = (char *) malloc (100)) == NULL)
729 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
730 gcollect = resize_gcollect (gcollect);
731 gcollect->ptrs[gcollect->count++] = pstr;
732 }
733 else
734 {
735 if (npos != 0)
736 str = (char *) get_va_nth (argp, npos);
737 else
738 str = va_arg (arg, char *);
739 if (!str)
740 return cleanup_return (rval, &gcollect, pstr, &wbuf);
741 }
742 }
743
744 if ((c = in_ch (s, &read_in)) == WEOF)
745 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
746
747 memset (&state, 0, sizeof (state));
748
749 do
750 {
751 if (iswspace (c))
752 {
753 back_ch (c, s, &read_in, 1);
754 break;
755 }
756
757 {
758 if ((flags & IS_SUPPRESSED) == 0 && (flags & IS_ALLOC_USED) != 0
759 && (str + MB_CUR_MAX) >= (*pstr + str_sz))
760 {
761 new_sz = str_sz * 2;
762 str_len = (str - *pstr);
763
764 while ((nstr = (char *) realloc (*pstr, new_sz)) == NULL
765 && new_sz > (str_len + MB_CUR_MAX))
766 new_sz = str_len + MB_CUR_MAX;
767 if (!nstr)
768 {
769 if ((flags & USE_POSIX_ALLOC) == 0)
770 {
771 (*pstr)[str_len] = 0;
772 pstr = NULL;
773 ++rval;
774 }
775 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
776 }
777 *pstr = nstr;
778 str = nstr + str_len;
779 str_sz = new_sz;
780 }
781
782 n = wcrtomb ((flags & IS_SUPPRESSED) == 0 ? str : NULL, c,
783 &state);
784 if (n == (size_t) -1LL)
785 {
786 errno = EILSEQ;
787 return cleanup_return (rval, &gcollect, pstr, &wbuf);
788 }
789
790 str += n;
791 }
792 }
793 while ((width <= 0 || --width > 0) && (c = in_ch (s, &read_in)) != WEOF);
794
795 if ((flags & IS_SUPPRESSED) == 0)
796 {
797 n = wcrtomb (buf, 0, &state);
798 if (n > 0 && (flags & IS_ALLOC_USED) != 0
799 && (str + n) >= (*pstr + str_sz))
800 {
801 str_len = (str - *pstr);
802
803 if ((nstr = (char *) realloc (*pstr, str_len + n + 1)) == NULL)
804 {
805 if ((flags & USE_POSIX_ALLOC) == 0)
806 {
807 (*pstr)[str_len] = 0;
808 pstr = NULL;
809 ++rval;
810 }
811 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
812 }
813 *pstr = nstr;
814 str = nstr + str_len;
815 str_sz = str_len + n + 1;
816 }
817
818 if (n)
819 {
820 memcpy (str, buf, n);
821 str += n;
822 }
823 *str++ = 0;
824
825 optimize_alloc (pstr, str, str_sz);
826 pstr = NULL;
827 ++rval;
828 }
829 break;
830
831 case 'S':
832 if ((flags & IS_SUPPRESSED) == 0)
833 {
834 if ((flags & IS_ALLOC_USED) != 0)
835 {
836 if (npos != 0)
837 pstr = (char **) get_va_nth (argp, npos);
838 else
839 pstr = va_arg (arg, char **);
840
841 if (!pstr)
842 return cleanup_return (rval, &gcollect, pstr, &wbuf);
843 str_sz = 100;
844 *pstr = (char *) malloc (100 * sizeof (wchar_t));
845 if ((wstr = (wchar_t *) *pstr) == NULL)
846 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
847 gcollect = resize_gcollect (gcollect);
848 gcollect->ptrs[gcollect->count++] = pstr;
849 }
850 else
851 {
852 if (npos != 0)
853 wstr = (wchar_t *) get_va_nth (argp, npos);
854 else
855 wstr = va_arg (arg, wchar_t *);
856 if (!wstr)
857 return cleanup_return (rval, &gcollect, pstr, &wbuf);
858 }
859 }
860 if ((c = in_ch (s, &read_in)) == WEOF)
861 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
862
863 do
864 {
865 if (iswspace (c))
866 {
867 back_ch (c, s, &read_in, 1);
868 break;
869 }
870
871 if ((flags & IS_SUPPRESSED) == 0)
872 {
873 *wstr++ = c;
874 if ((flags & IS_ALLOC_USED) != 0 && wstr == ((wchar_t *) *pstr + str_sz))
875 {
876 new_sz = str_sz * 2;
877
878 while ((wstr = (wchar_t *) realloc (*pstr,
879 new_sz * sizeof (wchar_t))) == NULL
880 && new_sz > (size_t) (str_sz + 1))
881 new_sz = str_sz + 1;
882 if (!wstr)
883 {
884 if ((flags & USE_POSIX_ALLOC) == 0)
885 {
886 ((wchar_t *) (*pstr))[str_sz - 1] = 0;
887 pstr = NULL;
888 ++rval;
889 }
890 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
891 }
892 *pstr = (char *) wstr;
893 wstr += str_sz;
894 str_sz = new_sz;
895 }
896 }
897 }
898 while ((width <= 0 || --width > 0) && (c = in_ch (s, &read_in)) != WEOF);
899
900 if ((flags & IS_SUPPRESSED) == 0)
901 {
902 *wstr++ = 0;
903
904 optimize_alloc (pstr, (char *) wstr, str_sz * sizeof (wchar_t));
905 pstr = NULL;
906 ++rval;
907 }
908 break;
909
910 case 'd': case 'i':
911 case 'o': case 'p':
912 case 'u':
913 case 'x': case 'X':
914 switch (fc)
915 {
916 case 'd':
917 flags |= IS_SIGNED_NUM;
918 base = 10;
919 break;
920 case 'i':
921 flags |= IS_SIGNED_NUM;
922 base = 0;
923 break;
924 case 'o':
925 base = 8;
926 break;
927 case 'p':
928 base = 16;
929 flags &= ~(IS_S | IS_LL | IS_L);
930 #ifdef _WIN64
931 flags |= IS_LL;
932 #endif
933 flags |= IS_L | IS_POINTER;
934 break;
935 case 'u':
936 base = 10;
937 break;
938 case 'x': case 'X':
939 base = 16;
940 break;
941 }
942
943 if ((c = in_ch (s, &read_in)) == WEOF)
944 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
945
946 if (c == '+' || c == '-')
947 {
948 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
949 wbuf[wbuf_cur_sz++] = c;
950
951 if (width > 0)
952 --width;
953 c = in_ch (s, &read_in);
954 }
955
956 if (width != 0 && c == '0')
957 {
958 if (width > 0)
959 --width;
960
961 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
962 wbuf[wbuf_cur_sz++] = c;
963
964 c = in_ch (s, &read_in);
965
966 if (width != 0 && towlower (c) == 'x')
967 {
968 if (!base)
969 base = 16;
970 if (base == 16)
971 {
972 if (width > 0)
973 --width;
974 c = in_ch (s, &read_in);
975 }
976 }
977 else if (!base)
978 base = 8;
979 }
980
981 if (!base)
982 base = 10;
983
984 while (c != WEOF && width != 0)
985 {
986 if (base == 16)
987 {
988 if (!iswxdigit (c))
989 break;
990 }
991 else if (!iswdigit (c) || (int) (c - '0') >= base)
992 {
993 if (base != 10 || (flags & USE_GROUP) == 0 || c != lc_thousands_sep)
994 break;
995 }
996 if (c != lc_thousands_sep)
997 {
998 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
999 wbuf[wbuf_cur_sz++] = c;
1000 }
1001
1002 if (width > 0)
1003 --width;
1004
1005 c = in_ch (s, &read_in);
1006 }
1007
1008 if (!wbuf_cur_sz || (wbuf_cur_sz == 1 && (wbuf[0] == '+' || wbuf[0] == '-')))
1009 {
1010 if (!wbuf_cur_sz && (flags & IS_POINTER) != 0
1011 && match_string (s, &read_in, &c, L"(nil)"))
1012 {
1013 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1014 wbuf[wbuf_cur_sz++] = '0';
1015 }
1016 else
1017 {
1018 back_ch (c, s, &read_in, 0);
1019 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1020 }
1021 }
1022 else
1023 back_ch (c, s, &read_in, 0);
1024
1025 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1026 wbuf[wbuf_cur_sz++] = 0;
1027
1028 if ((flags & IS_LL) != 0)
1029 {
1030 if ((flags & IS_SIGNED_NUM) != 0)
1031 cv_val.ll = wcstoll (wbuf, &tmp_wbuf_ptr, base/*, flags & USE_GROUP*/);
1032 else
1033 cv_val.ull = wcstoull (wbuf, &tmp_wbuf_ptr, base/*, flags & USE_GROUP*/);
1034 }
1035 else
1036 {
1037 if ((flags & IS_SIGNED_NUM) != 0)
1038 cv_val.l = wcstol (wbuf, &tmp_wbuf_ptr, base/*, flags & USE_GROUP*/);
1039 else
1040 cv_val.ul = wcstoul (wbuf, &tmp_wbuf_ptr, base/*, flags & USE_GROUP*/);
1041 }
1042 if (wbuf == tmp_wbuf_ptr)
1043 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1044
1045 if ((flags & IS_SUPPRESSED) == 0)
1046 {
1047 if ((flags & IS_SIGNED_NUM) != 0)
1048 {
1049 if ((flags & IS_LL) != 0)
1050 *(npos != 0 ? (long long *) get_va_nth (argp, npos) : va_arg (arg, long long *)) = cv_val.ll;
1051 else if ((flags & IS_L) != 0)
1052 *(npos != 0 ? (long *) get_va_nth (argp, npos) : va_arg (arg, long *)) = cv_val.l;
1053 else if ((flags & IS_S) != 0)
1054 *(npos != 0 ? (short *) get_va_nth (argp, npos) : va_arg (arg, short *)) = (short) cv_val.l;
1055 else if ((flags & IS_C) != 0)
1056 *(npos != 0 ? (signed char *) get_va_nth (argp, npos) : va_arg (arg, signed char *)) = (signed char) cv_val.ul;
1057 else
1058 *(npos != 0 ? (int *) get_va_nth (argp, npos) : va_arg (arg, int *)) = (int) cv_val.l;
1059 }
1060 else
1061 {
1062 if ((flags & IS_LL) != 0)
1063 *(npos != 0 ? (unsigned long long *) get_va_nth (argp, npos) : va_arg (arg, unsigned long long *)) = cv_val.ull;
1064 else if ((flags & IS_L) != 0)
1065 *(npos != 0 ? (unsigned long *) get_va_nth (argp, npos) : va_arg (arg, unsigned long *)) = cv_val.ul;
1066 else if ((flags & IS_S) != 0)
1067 *(npos != 0 ? (unsigned short *) get_va_nth (argp, npos) : va_arg (arg, unsigned short *))
1068 = (unsigned short) cv_val.ul;
1069 else if ((flags & IS_C) != 0)
1070 *(npos != 0 ? (unsigned char *) get_va_nth (argp, npos) : va_arg (arg, unsigned char *)) = (unsigned char) cv_val.ul;
1071 else
1072 *(npos != 0 ? (unsigned int *) get_va_nth (argp, npos) : va_arg (arg, unsigned int *)) = (unsigned int) cv_val.ul;
1073 }
1074 ++rval;
1075 }
1076 break;
1077
1078 case 'e': case 'E':
1079 case 'f': case 'F':
1080 case 'g': case 'G':
1081 case 'a': case 'A':
1082 if (width > 0)
1083 --width;
1084 if ((c = in_ch (s, &read_in)) == WEOF)
1085 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
1086
1087 seen_dot = seen_exp = 0;
1088 is_neg = (c == '-' ? 1 : 0);
1089
1090 if (c == '-' || c == '+')
1091 {
1092 if (width == 0 || (c = in_ch (s, &read_in)) == WEOF)
1093 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1094 if (width > 0)
1095 --width;
1096 }
1097
1098 if (towlower (c) == 'n')
1099 {
1100 const wchar_t *match_txt = L"nan";
1101
1102 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1103 wbuf[wbuf_cur_sz++] = c;
1104
1105 ++match_txt;
1106 do
1107 {
1108 if (width == 0 || (c = in_ch (s, &read_in)) == WEOF
1109 || towlower (c) != match_txt[0])
1110 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1111 if (width > 0)
1112 --width;
1113
1114 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1115 wbuf[wbuf_cur_sz++] = c;
1116 ++match_txt;
1117 }
1118 while (*match_txt != 0);
1119 }
1120 else if (towlower (c) == 'i')
1121 {
1122 const wchar_t *match_txt = L"inf";
1123
1124 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1125 wbuf[wbuf_cur_sz++] = c;
1126
1127 ++match_txt;
1128 do
1129 {
1130 if (width == 0 || (c = in_ch (s, &read_in)) == WEOF
1131 || towlower (c) != match_txt[0])
1132 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1133 if (width > 0)
1134 --width;
1135
1136 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1137 wbuf[wbuf_cur_sz++] = c;
1138 ++match_txt;
1139 }
1140 while (*match_txt != 0);
1141
1142 if (width != 0 && (c = in_ch (s, &read_in)) != WEOF && towlower (c) == 'i')
1143 {
1144 match_txt = L"inity";
1145 if (width > 0)
1146 --width;
1147
1148 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1149 wbuf[wbuf_cur_sz++] = c;
1150
1151 ++match_txt;
1152 do
1153 {
1154 if (width == 0 || (c = in_ch (s, &read_in)) == WEOF
1155 || towlower (c) != match_txt[0])
1156 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1157 if (width > 0)
1158 --width;
1159 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1160 wbuf[wbuf_cur_sz++] = c;
1161 ++match_txt;
1162 }
1163 while (*match_txt != 0);
1164 }
1165 else if (width != 0 && c != WEOF)
1166 back_ch (c, s, &read_in, 0);
1167 }
1168 else
1169 {
1170 not_in = 'e';
1171 if (width != 0 && c == '0')
1172 {
1173 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1174 wbuf[wbuf_cur_sz++] = c;
1175
1176 c = in_ch (s, &read_in);
1177 if (width > 0)
1178 --width;
1179 if (width != 0 && towlower (c) == 'x')
1180 {
1181 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1182 wbuf[wbuf_cur_sz++] = c;
1183 flags |= IS_HEX_FLOAT;
1184 not_in = 'p';
1185
1186 flags &= ~USE_GROUP;
1187 c = in_ch (s, &read_in);
1188 if (width > 0)
1189 --width;
1190 }
1191 }
1192
1193 while (1)
1194 {
1195 if (iswdigit (c))
1196 {
1197 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1198 wbuf[wbuf_cur_sz++] = c;
1199 }
1200 else if (!seen_exp && (flags & IS_HEX_FLOAT) != 0 && iswxdigit (c))
1201 {
1202 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1203 wbuf[wbuf_cur_sz++] = c;
1204 }
1205 else if (seen_exp && wbuf[wbuf_cur_sz - 1] == not_in
1206 && (c == '-' || c == '+'))
1207 {
1208 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1209 wbuf[wbuf_cur_sz++] = c;
1210 }
1211 else if (wbuf_cur_sz > 0 && !seen_exp
1212 && (wchar_t) towlower (c) == not_in)
1213 {
1214 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1215 wbuf[wbuf_cur_sz++] = not_in;
1216
1217 seen_exp = seen_dot = 1;
1218 }
1219 else
1220 {
1221 if (!seen_dot && c == lc_decimal_point)
1222 {
1223 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1224 wbuf[wbuf_cur_sz++] = c;
1225
1226 seen_dot = 1;
1227 }
1228 else if ((flags & USE_GROUP) != 0 && !seen_dot && c == lc_thousands_sep)
1229 {
1230 /* As our conversion routines aren't supporting thousands
1231 separators, we are filtering them here. */
1232 }
1233 else
1234 {
1235 back_ch (c, s, &read_in, 0);
1236 break;
1237 }
1238 }
1239
1240 if (width == 0 || (c = in_ch (s, &read_in)) == WEOF)
1241 break;
1242
1243 if (width > 0)
1244 --width;
1245 }
1246
1247 if (wbuf_cur_sz == 0 || ((flags & IS_HEX_FLOAT) != 0 && wbuf_cur_sz == 2))
1248 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1249 }
1250
1251 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1252 wbuf[wbuf_cur_sz++] = 0;
1253
1254 if ((flags & IS_LL) != 0)
1255 {
1256 long double d = __mingw_wcstold (wbuf, &tmp_wbuf_ptr/*, flags & USE_GROUP*/);
1257 if ((flags & IS_SUPPRESSED) == 0 && tmp_wbuf_ptr != wbuf)
1258 *(npos != 0 ? (long double *) get_va_nth (argp, npos) : va_arg (arg, long double *)) = is_neg ? -d : d;
1259 }
1260 else if ((flags & IS_L) != 0)
1261 {
1262 double d = __mingw_wcstod (wbuf, &tmp_wbuf_ptr/*, flags & USE_GROUP*/);
1263 if ((flags & IS_SUPPRESSED) == 0 && tmp_wbuf_ptr != wbuf)
1264 *(npos != 0 ? (double *) get_va_nth (argp, npos) : va_arg (arg, double *)) = is_neg ? -d : d;
1265 }
1266 else
1267 {
1268 float d = __mingw_wcstof (wbuf, &tmp_wbuf_ptr/*, flags & USE_GROUP*/);
1269 if ((flags & IS_SUPPRESSED) == 0 && tmp_wbuf_ptr != wbuf)
1270 *(npos != 0 ? (float *) get_va_nth (argp, npos) : va_arg (arg, float *)) = is_neg ? -d : d;
1271 }
1272
1273 if (wbuf == tmp_wbuf_ptr)
1274 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1275
1276 if ((flags & IS_SUPPRESSED) == 0)
1277 ++rval;
1278 break;
1279
1280 case '[':
1281 if ((flags & IS_L) != 0)
1282 {
1283 if ((flags & IS_SUPPRESSED) == 0)
1284 {
1285 if ((flags & IS_ALLOC_USED) != 0)
1286 {
1287 if (npos != 0)
1288 pstr = (char **) get_va_nth (argp, npos);
1289 else
1290 pstr = va_arg (arg, char **);
1291
1292 if (!pstr)
1293 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1294 str_sz = 100;
1295 *pstr = (char *) malloc (100 * sizeof (wchar_t));
1296 if ((wstr = (wchar_t *) *pstr) == NULL)
1297 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
1298
1299 gcollect = resize_gcollect (gcollect);
1300 gcollect->ptrs[gcollect->count++] = pstr;
1301 }
1302 else
1303 {
1304 if (npos != 0)
1305 wstr = (wchar_t *) get_va_nth (argp, npos);
1306 else
1307 wstr = va_arg (arg, wchar_t *);
1308 if (!wstr)
1309 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1310 }
1311 }
1312
1313 }
1314 else if ((flags & IS_SUPPRESSED) == 0)
1315 {
1316 if ((flags & IS_ALLOC_USED) != 0)
1317 {
1318 if (npos != 0)
1319 pstr = (char **) get_va_nth (argp, npos);
1320 else
1321 pstr = va_arg (arg, char **);
1322
1323 if (!pstr)
1324 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1325 str_sz = 100;
1326 if ((str = *pstr = (char *) malloc (100)) == NULL)
1327 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
1328 gcollect = resize_gcollect (gcollect);
1329 gcollect->ptrs[gcollect->count++] = pstr;
1330 }
1331 else
1332 {
1333 if (npos != 0)
1334 str = (char *) get_va_nth (argp, npos);
1335 else
1336 str = va_arg (arg, char *);
1337 if (!str)
1338 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1339 }
1340 }
1341
1342 not_in = (*f == '^' ? 1 : 0);
1343 if (*f == '^')
1344 f++;
1345
1346 if (width < 0)
1347 width = INT_MAX;
1348
1349 tmp_wbuf_ptr = (wchar_t *) f;
1350
1351 if (*f == L']')
1352 ++f;
1353
1354 while ((fc = *f++) != 0 && fc != L']');
1355
1356 if (fc == 0)
1357 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1358 temp_wbuf_end = (wchar_t *) f - 1;
1359
1360 if ((flags & IS_L) != 0)
1361 {
1362 read_in_sv = read_in;
1363
1364 if ((c = in_ch (s, &read_in)) == WEOF)
1365 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
1366
1367 do
1368 {
1369 int ended = 0;
1370 for (wbuf_iter = tmp_wbuf_ptr; wbuf_iter < temp_wbuf_end;)
1371 {
1372 if (wbuf_iter[0] == '-' && wbuf_iter[1] != 0
1373 && (wbuf_iter + 1) != temp_wbuf_end
1374 && wbuf_iter != tmp_wbuf_ptr
1375 && (unsigned int) wbuf_iter[-1] <= (unsigned int) wbuf_iter[1])
1376 {
1377 for (wc = wbuf_iter[-1] + 1; wc <= wbuf_iter[1] && (wint_t) wc != c; ++wc);
1378
1379 if (wc <= wbuf_iter[1] && !not_in)
1380 break;
1381 if (wc <= wbuf_iter[1] && not_in)
1382 {
1383 back_ch (c, s, &read_in, 0);
1384 ended = 1;
1385 break;
1386 }
1387
1388 wbuf_iter += 2;
1389 }
1390 else
1391 {
1392 if ((wint_t) *wbuf_iter == c && !not_in)
1393 break;
1394 if ((wint_t) *wbuf_iter == c && not_in)
1395 {
1396 back_ch (c, s, &read_in, 0);
1397 ended = 1;
1398 break;
1399 }
1400
1401 ++wbuf_iter;
1402 }
1403 }
1404 if (ended)
1405 break;
1406
1407 if (wbuf_iter == temp_wbuf_end && !not_in)
1408 {
1409 back_ch (c, s, &read_in, 0);
1410 break;
1411 }
1412
1413 if ((flags & IS_SUPPRESSED) == 0)
1414 {
1415 *wstr++ = c;
1416
1417 if ((flags & IS_ALLOC_USED) != 0
1418 && wstr == ((wchar_t *) *pstr + str_sz))
1419 {
1420 new_sz = str_sz * 2;
1421 while ((wstr = (wchar_t *) realloc (*pstr,
1422 new_sz * sizeof (wchar_t))) == NULL
1423 && new_sz > (size_t) (str_sz + 1))
1424 new_sz = str_sz + 1;
1425 if (!wstr)
1426 {
1427 if ((flags & USE_POSIX_ALLOC) == 0)
1428 {
1429 ((wchar_t *) (*pstr))[str_sz - 1] = 0;
1430 pstr = NULL;
1431 ++rval;
1432 }
1433 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
1434 }
1435 *pstr = (char *) wstr;
1436 wstr += str_sz;
1437 str_sz = new_sz;
1438 }
1439 }
1440 }
1441 while (--width > 0 && (c = in_ch (s, &read_in)) != WEOF);
1442
1443 if (read_in_sv == read_in)
1444 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1445
1446 if ((flags & IS_SUPPRESSED) == 0)
1447 {
1448 *wstr++ = 0;
1449
1450 optimize_alloc (pstr, (char *) wstr, str_sz * sizeof (wchar_t));
1451 pstr = NULL;
1452 ++rval;
1453 }
1454 }
1455 else
1456 {
1457 read_in_sv = read_in;
1458
1459 if ((c = in_ch (s, &read_in)) == WEOF)
1460 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
1461
1462 memset (&state, 0, sizeof (state));
1463
1464 do
1465 {
1466 int ended = 0;
1467 wbuf_iter = tmp_wbuf_ptr;
1468 while (wbuf_iter < temp_wbuf_end)
1469 {
1470 if (wbuf_iter[0] == '-' && wbuf_iter[1] != 0
1471 && (wbuf_iter + 1) != temp_wbuf_end
1472 && wbuf_iter != tmp_wbuf_ptr
1473 && (unsigned int) wbuf_iter[-1] <= (unsigned int) wbuf_iter[1])
1474 {
1475 for (wc = wbuf_iter[-1] + 1; wc <= wbuf_iter[1] && (wint_t) wc != c; ++wc);
1476
1477 if (wc <= wbuf_iter[1] && !not_in)
1478 break;
1479 if (wc <= wbuf_iter[1] && not_in)
1480 {
1481 back_ch (c, s, &read_in, 0);
1482 ended = 1;
1483 break;
1484 }
1485
1486 wbuf_iter += 2;
1487 }
1488 else
1489 {
1490 if ((wint_t) *wbuf_iter == c && !not_in)
1491 break;
1492 if ((wint_t) *wbuf_iter == c && not_in)
1493 {
1494 back_ch (c, s, &read_in, 0);
1495 ended = 1;
1496 break;
1497 }
1498
1499 ++wbuf_iter;
1500 }
1501 }
1502
1503 if (ended)
1504 break;
1505 if (wbuf_iter == temp_wbuf_end && !not_in)
1506 {
1507 back_ch (c, s, &read_in, 0);
1508 break;
1509 }
1510
1511 if ((flags & IS_SUPPRESSED) == 0)
1512 {
1513 if ((flags & IS_ALLOC_USED) != 0
1514 && (str + MB_CUR_MAX) >= (*pstr + str_sz))
1515 {
1516 new_sz = str_sz * 2;
1517 str_len = (str - *pstr);
1518
1519 while ((nstr = (char *) realloc (*pstr, new_sz)) == NULL
1520 && new_sz > (str_len + MB_CUR_MAX))
1521 new_sz = str_len + MB_CUR_MAX;
1522 if (!nstr)
1523 {
1524 if ((flags & USE_POSIX_ALLOC) == 0)
1525 {
1526 ((*pstr))[str_len] = 0;
1527 pstr = NULL;
1528 ++rval;
1529 }
1530 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
1531 }
1532 *pstr = nstr;
1533 str = nstr + str_len;
1534 str_sz = new_sz;
1535 }
1536 }
1537
1538 n = wcrtomb ((flags & IS_SUPPRESSED) == 0 ? str : NULL, c, &state);
1539 if (n == (size_t) -1LL)
1540 {
1541 errno = EILSEQ;
1542 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1543 }
1544
1545 str += n;
1546 }
1547 while (--width > 0 && (c = in_ch (s, &read_in)) != WEOF);
1548
1549 if (read_in_sv == read_in)
1550 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1551
1552 if ((flags & IS_SUPPRESSED) == 0)
1553 {
1554 n = wcrtomb (buf, 0, &state);
1555 if (n > 0 && (flags & IS_ALLOC_USED) != 0
1556 && (str + n) >= (*pstr + str_sz))
1557 {
1558 str_len = (str - *pstr);
1559
1560 if ((nstr = (char *) realloc (*pstr, str_len + n + 1)) == NULL)
1561 {
1562 if ((flags & USE_POSIX_ALLOC) == 0)
1563 {
1564 (*pstr)[str_len] = 0;
1565 pstr = NULL;
1566 ++rval;
1567 }
1568 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
1569 }
1570 *pstr = nstr;
1571 str = nstr + str_len;
1572 str_sz = str_len + n + 1;
1573 }
1574
1575 if (n)
1576 {
1577 memcpy (str, buf, n);
1578 str += n;
1579 }
1580 *str++ = 0;
1581
1582 optimize_alloc (pstr, str, str_sz);
1583 pstr = NULL;
1584 ++rval;
1585 }
1586 }
1587 break;
1588
1589 default:
1590 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1591 }
1592 }
1593
1594 if (ignore_ws)
1595 {
1596 while (iswspace ((c = in_ch (s, &read_in))));
1597 back_ch (c, s, &read_in, 0);
1598 }
1599
1600 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1601}
lib/libc/mingw/stdio/mingw_swformat.h created+63
...@@ -0,0 +1,63 @@
1/*
2 This Software is provided under the Zope Public License (ZPL) Version 2.1.
3
4 Copyright (c) 2011 by the mingw-w64 project
5
6 See the AUTHORS file for the list of contributors to the mingw-w64 project.
7
8 This license has been certified as open source. It has also been designated
9 as GPL compatible by the Free Software Foundation (FSF).
10
11 Redistribution and use in source and binary forms, with or without
12 modification, are permitted provided that the following conditions are met:
13
14 1. Redistributions in source code must retain the accompanying copyright
15 notice, this list of conditions, and the following disclaimer.
16 2. Redistributions in binary form must reproduce the accompanying
17 copyright notice, this list of conditions, and the following disclaimer
18 in the documentation and/or other materials provided with the
19 distribution.
20 3. Names of the copyright holders must not be used to endorse or promote
21 products derived from this software without prior written permission
22 from the copyright holders.
23 4. The right to distribute this software or to use it for any purpose does
24 not give you the right to use Servicemarks (sm) or Trademarks (tm) of
25 the copyright holders. Use of them is covered by separate agreement
26 with the copyright holders.
27 5. If any files are modified, you must cause the modified files to carry
28 prominent notices stating that you changed the files and the date of
29 any change.
30
31 Disclaimer
32
33 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
34 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
35 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
36 EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
37 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
38 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
39 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
40 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
41 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
42 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43*/
44
45#ifndef SWFORMAT_H
46#define SWFORMAT_H
47
48/* internal stream structure with back-buffer. */
49typedef struct _IFPW
50{
51 __extension__ union {
52 void *fp;
53 const wchar_t *str;
54 };
55 int bch[1024];
56 unsigned int is_string : 1;
57 int back_top;
58 unsigned int seen_eof : 1;
59} _IFPW;
60
61int __cdecl __mingw_swformat(_IFPW *, const wchar_t *, va_list) __MINGW_NOTHROW;
62
63#endif /* !defined SWFORMAT_H */
lib/libc/mingw/stdio/mingw_swprintf.c created+10
...@@ -0,0 +1,10 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7#define __BUILD_WIDEAPI_ISO 1
8
9#include "mingw_snprintf.c"
10
lib/libc/mingw/stdio/mingw_vfprintfw.c deleted-9
...@@ -1,9 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7
8#include "mingw_vfprintf.c"
9
lib/libc/mingw/stdio/mingw_vfscanf.c+1-1619
...@@ -1,1615 +1,8 @@...@@ -1,1615 +1,8 @@
1/*
2 This Software is provided under the Zope Public License (ZPL) Version 2.1.
3
4 Copyright (c) 2011 by the mingw-w64 project
5
6 See the AUTHORS file for the list of contributors to the mingw-w64 project.
7
8 This license has been certified as open source. It has also been designated
9 as GPL compatible by the Free Software Foundation (FSF).
10
11 Redistribution and use in source and binary forms, with or without
12 modification, are permitted provided that the following conditions are met:
13
14 1. Redistributions in source code must retain the accompanying copyright
15 notice, this list of conditions, and the following disclaimer.
16 2. Redistributions in binary form must reproduce the accompanying
17 copyright notice, this list of conditions, and the following disclaimer
18 in the documentation and/or other materials provided with the
19 distribution.
20 3. Names of the copyright holders must not be used to endorse or promote
21 products derived from this software without prior written permission
22 from the copyright holders.
23 4. The right to distribute this software or to use it for any purpose does
24 not give you the right to use Servicemarks (sm) or Trademarks (tm) of
25 the copyright holders. Use of them is covered by separate agreement
26 with the copyright holders.
27 5. If any files are modified, you must cause the modified files to carry
28 prominent notices stating that you changed the files and the date of
29 any change.
30
31 Disclaimer
32
33 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
34 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
35 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
36 EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
37 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
38 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
39 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
40 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
41 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
42 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43*/
44
45#define __LARGE_MBSTATE_T
46
47#include <limits.h>
48#include <stddef.h>
49#include <stdarg.h>1#include <stdarg.h>
50#include <stdio.h>2#include <stdio.h>
51#include <stdint.h>
52#include <stdlib.h>
53#include <string.h>3#include <string.h>
54#include <wchar.h>
55#include <ctype.h>
56#include <wctype.h>
57#include <locale.h>
58#include <errno.h>
59
60/* Helper flags for conversion. */
61#define IS_C 0x0001
62#define IS_S 0x0002
63#define IS_L 0x0004
64#define IS_LL 0x0008
65#define IS_SIGNED_NUM 0x0010
66#define IS_POINTER 0x0020
67#define IS_HEX_FLOAT 0x0040
68#define IS_SUPPRESSED 0x0080
69#define USE_GROUP 0x0100
70#define USE_GNU_ALLOC 0x0200
71#define USE_POSIX_ALLOC 0x0400
72
73#define IS_ALLOC_USED (USE_GNU_ALLOC | USE_POSIX_ALLOC)
74
75/* internal stream structure with back-buffer. */
76typedef struct _IFP
77{
78 __extension__ union {
79 void *fp;
80 const char *str;
81 };
82 int bch[1024];
83 unsigned int is_string : 1;
84 int back_top;
85 unsigned int seen_eof : 1;
86} _IFP;
87
88static void *
89get_va_nth (va_list argp, unsigned int n)
90{
91 va_list ap;
92 if (!n) abort ();
93 va_copy (ap, argp);
94 while (--n > 0)
95 (void) va_arg(ap, void *);
96 return va_arg (ap, void *);
97}
98
99static void
100optimize_alloc (char **p, char *end, size_t alloc_sz)
101{
102 size_t need_sz;
103 char *h;
104
105 if (!p || !*p)
106 return;
107
108 need_sz = end - *p;
109 if (need_sz == alloc_sz)
110 return;
111
112 if ((h = (char *) realloc (*p, need_sz)) != NULL)
113 *p = h;
114}
115
116static void
117back_ch (int c, _IFP *s, size_t *rin, int not_eof)
118{
119 if (!not_eof && c == EOF)
120 return;
121 if (s->is_string == 0)
122 {
123 FILE *fp = s->fp;
124 ungetc (c, fp);
125 rin[0] -= 1;
126 return;
127 }
128 rin[0] -= 1;
129 s->bch[s->back_top] = c;
130 s->back_top += 1;
131}
132
133static int
134in_ch (_IFP *s, size_t *rin)
135{
136 int r;
137 if (s->back_top)
138 {
139 s->back_top -= 1;
140 r = s->bch[s->back_top];
141 rin[0] += 1;
142 }
143 else if (s->seen_eof)
144 {
145 return EOF;
146 }
147 else if (s->is_string)
148 {
149 const char *ps = s->str;
150 r = ((int) *ps) & 0xff;
151 ps++;
152 if (r != 0)
153 {
154 rin[0] += 1;
155 s->str = ps;
156 return r;
157 }
158 s->seen_eof = 1;
159 return EOF;
160 }
161 else
162 {
163 FILE *fp = (FILE *) s->fp;
164 r = getc (fp);
165 if (r != EOF)
166 rin[0] += 1;
167 else s->seen_eof = 1;
168 }
169 return r;
170}
171
172static int
173match_string (_IFP *s, size_t *rin, int *c, const char *str)
174{
175 int ch = *c;
176
177 if (*str == 0)
178 return 1;
179
180 if (*str != (char) tolower (ch))
181 return 0;
182 ++str;
183 while (*str != 0)
184 {
185 if ((ch = in_ch (s, rin)) == EOF)
186 {
187 c[0] = ch;
188 return 0;
189 }
190
191 if (*str != (char) tolower (ch))
192 {
193 c[0] = ch;
194 return 0;
195 }
196 ++str;
197 }
198 c[0] = ch;
199 return 1;
200}
201
202struct gcollect
203{
204 size_t count;
205 struct gcollect *next;
206 char **ptrs[32];
207};
208
209static void
210release_ptrs (struct gcollect **pt, char **wbuf)
211{
212 struct gcollect *pf;
213 size_t cnt;
214
215 if (wbuf)
216 {
217 free (*wbuf);
218 *wbuf = NULL;
219 }
220 if (!pt || (pf = *pt) == NULL)
221 return;
222 while (pf != NULL)
223 {
224 struct gcollect *pf_sv = pf;
225 for (cnt = 0; cnt < pf->count; ++cnt)
226 {
227 free (*pf->ptrs[cnt]);
228 *pf->ptrs[cnt] = NULL;
229 }
230 pf = pf->next;
231 free (pf_sv);
232 }
233 *pt = NULL;
234}
235
236static int
237cleanup_return (int rval, struct gcollect **pfree, char **strp, char **wbuf)
238{
239 if (rval == EOF)
240 release_ptrs (pfree, wbuf);
241 else
242 {
243 if (pfree)
244 {
245 struct gcollect *pf = *pfree, *pf_sv;
246 while (pf != NULL)
247 {
248 pf_sv = pf;
249 pf = pf->next;
250 free (pf_sv);
251 }
252 *pfree = NULL;
253 }
254 if (strp != NULL)
255 {
256 free (*strp);
257 *strp = NULL;
258 }
259 if (wbuf)
260 {
261 free (*wbuf);
262 *wbuf = NULL;
263 }
264 }
265 return rval;
266}
267
268static struct gcollect *
269resize_gcollect (struct gcollect *pf)
270{
271 struct gcollect *np;
272 if (pf && pf->count < 32)
273 return pf;
274 np = malloc (sizeof (struct gcollect));
275 np->count = 0;
276 np->next = pf;
277 return np;
278}
279
280static char *
281resize_wbuf (size_t wpsz, size_t *wbuf_max_sz, char *old)
282{
283 char *wbuf;
284 size_t nsz;
285 if (*wbuf_max_sz != wpsz)
286 return old;
287 nsz = (256 > (2 * wbuf_max_sz[0]) ? 256 : (2 * wbuf_max_sz[0]));
288 if (!old)
289 wbuf = (char *) malloc (nsz);
290 else
291 wbuf = (char *) realloc (old, nsz);
292 if (!wbuf)
293 {
294 if (old)
295 free (old);
296 }
297 else
298 *wbuf_max_sz = nsz;
299 return wbuf;
300}
301
302static int
303__mingw_sformat (_IFP *s, const char *format, va_list argp)
304{
305 const char *f = format;
306 struct gcollect *gcollect = NULL;
307 size_t read_in = 0, wbuf_max_sz = 0, cnt;
308 ssize_t str_sz = 0;
309 char *str = NULL, **pstr = NULL, *wbuf = NULL;
310 wchar_t *wstr = NULL;
311 int rval = 0, c = 0, ignore_ws = 0;
312 va_list arg;
313 unsigned char fc;
314 unsigned int npos;
315 int width, flags, base = 0, errno_sv;
316 size_t wbuf_cur_sz, read_in_sv, new_sz, n;
317 char seen_dot, seen_exp, is_neg, not_in;
318 char *tmp_wbuf_ptr, buf[MB_LEN_MAX];
319 const char *lc_decimal_point, *lc_thousands_sep;
320 mbstate_t state, cstate;
321 union {
322 unsigned long long ull;
323 unsigned long ul;
324 long long ll;
325 long l;
326 } cv_val;
327
328 arg = argp;
329
330 if (!s || s->fp == NULL || !format)
331 {
332 errno = EINVAL;
333 return EOF;
334 }
335
336 memset (&state, 0, sizeof (state));
337
338 lc_decimal_point = localeconv()->decimal_point;
339 lc_thousands_sep = localeconv()->thousands_sep;
340 if (lc_thousands_sep != NULL && *lc_thousands_sep == 0)
341 lc_thousands_sep = NULL;
342
343 while (*f != 0)
344 {
345 if (!isascii ((unsigned char) *f))
346 {
347 int len;
348
349 if ((len = mbrlen (f, strlen (f), &state)) > 0)
350 {
351 do
352 {
353 if ((c = in_ch (s, &read_in)) == EOF || c != (unsigned char) *f++)
354 {
355 back_ch (c, s, &read_in, 1);
356 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
357 }
358 }
359 while (--len > 0);
360
361 continue;
362 }
363 }
364
365 fc = *f++;
366 if (fc != '%')
367 {
368 if (isspace (fc))
369 ignore_ws = 1;
370 else
371 {
372 if ((c = in_ch (s, &read_in)) == EOF)
373 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
374
375 if (ignore_ws)
376 {
377 ignore_ws = 0;
378 if (isspace (c))
379 {
380 do
381 {
382 if ((c = in_ch (s, &read_in)) == EOF)
383 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
384 }
385 while (isspace (c));
386 }
387 }
388
389 if (c != fc)
390 {
391 back_ch (c, s, &read_in, 0);
392 return cleanup_return (rval, &gcollect, pstr, &wbuf);
393 }
394 }
395
396 continue;
397 }
398
399 width = flags = 0;
400 npos = 0;
401 wbuf_cur_sz = 0;
402
403 if (isdigit ((unsigned char) *f))
404 {
405 const char *svf = f;
406 npos = (unsigned char) *f++ - '0';
407 while (isdigit ((unsigned char) *f))
408 npos = npos * 10 + ((unsigned char) *f++ - '0');
409 if (*f != '$')
410 {
411 npos = 0;
412 f = svf;
413 }
414 else
415 f++;
416 }
417
418 do
419 {
420 if (*f == '*')
421 flags |= IS_SUPPRESSED;
422 else if (*f == '\'')
423 {
424 if (lc_thousands_sep)
425 flags |= USE_GROUP;
426 }
427 else if (*f == 'I')
428 {
429 /* we don't support locale's digits (i18N), but ignore it for now silently. */
430 ;
431#ifdef _WIN32
432 if (f[1] == '6' && f[2] == '4')
433 {
434 flags |= IS_LL | IS_L;
435 f += 2;
436 }
437 else if (f[1] == '3' && f[2] == '2')
438 {
439 flags |= IS_L;
440 f += 2;
441 }
442 else
443 {
444#ifdef _WIN64
445 flags |= IS_LL | IS_L;
446#else
447 flags |= IS_L;
448#endif
449 }
450#endif
451 }
452 else
453 break;
454 ++f;
455 }
456 while (1);
457
458 while (isdigit ((unsigned char) *f))
459 width = width * 10 + ((unsigned char) *f++ - '0');
460
461 if (!width)
462 width = -1;
463
464 switch (*f)
465 {
466 case 'h':
467 ++f;
468 flags |= (*f == 'h' ? IS_C : IS_S);
469 if (*f == 'h')
470 ++f;
471 break;
472 case 'l':
473 ++f;
474 flags |= (*f == 'l' ? IS_LL : 0) | IS_L;
475 if (*f == 'l')
476 ++f;
477 break;
478 case 'q': case 'L':
479 ++f;
480 flags |= IS_LL | IS_L;
481 break;
482 case 'a':
483 if (f[1] != 's' && f[1] != 'S' && f[1] != '[')
484 break;
485 ++f;
486 flags |= USE_GNU_ALLOC;
487 break;
488 case 'm':
489 flags |= USE_POSIX_ALLOC;
490 ++f;
491 if (*f == 'l')
492 {
493 flags |= IS_L;
494 f++;
495 }
496 break;
497 case 'z':
498#ifdef _WIN64
499 flags |= IS_LL | IS_L;
500#else
501 flags |= IS_L;
502#endif
503 ++f;
504 break;
505 case 'j':
506 if (sizeof (uintmax_t) > sizeof (unsigned long))
507 flags |= IS_LL;
508 else if (sizeof (uintmax_t) > sizeof (unsigned int))
509 flags |= IS_L;
510 ++f;
511 break;
512 case 't':
513#ifdef _WIN64
514 flags |= IS_LL;
515#else
516 flags |= IS_L;
517#endif
518 ++f;
519 break;
520 case 0:
521 return cleanup_return (rval, &gcollect, pstr, &wbuf);
522 default:
523 break;
524 }
525
526 if (*f == 0)
527 return cleanup_return (rval, &gcollect, pstr, &wbuf);
528
529 fc = *f++;
530 if (ignore_ws || (fc != '[' && fc != 'c' && fc != 'C' && fc != 'n'))
531 {
532 errno_sv = errno;
533 errno = 0;
534 do
535 {
536 if ((c == EOF || (c = in_ch (s, &read_in)) == EOF)
537 && errno == EINTR)
538 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
539 }
540 while (isspace (c));
541
542 ignore_ws = 0;
543 errno = errno_sv;
544 back_ch (c, s, &read_in, 0);
545 }
546
547 switch (fc)
548 {
549 case 'c':
550 if ((flags & IS_L) != 0)
551 fc = 'C';
552 break;
553 case 's':
554 if ((flags & IS_L) != 0)
555 fc = 'S';
556 break;
557 }
558
559 switch (fc)
560 {
561 case '%':
562 if ((c = in_ch (s, &read_in)) == EOF)
563 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
564 if (c != fc)
565 {
566 back_ch (c, s, &read_in, 1);
567 return cleanup_return (rval, &gcollect, pstr, &wbuf);
568 }
569 break;
570
571 case 'n':
572 if ((flags & IS_SUPPRESSED) == 0)
573 {
574 if ((flags & IS_LL) != 0)
575 *(npos != 0 ? (long long *) get_va_nth (argp, npos) : va_arg (arg, long long *)) = read_in;
576 else if ((flags & IS_L) != 0)
577 *(npos != 0 ? (long *) get_va_nth (argp, npos) : va_arg (arg, long *)) = read_in;
578 else if ((flags & IS_S) != 0)
579 *(npos != 0 ? (short *) get_va_nth (argp, npos) : va_arg (arg, short *)) = read_in;
580 else if ((flags & IS_C) != 0)
581 *(npos != 0 ? (char *) get_va_nth (argp, npos) : va_arg (arg, char *)) = read_in;
582 else
583 *(npos != 0 ? (int *) get_va_nth (argp, npos) : va_arg (arg, int *)) = read_in;
584 }
585 break;
586
587 case 'c':
588 if (width == -1)
589 width = 1;
590
591 if ((flags & IS_SUPPRESSED) == 0)
592 {
593 if ((flags & IS_ALLOC_USED) != 0)
594 {
595 if (npos != 0)
596 pstr = (char **) get_va_nth (argp, npos);
597 else
598 pstr = va_arg (arg, char **);
599
600 if (!pstr)
601 return cleanup_return (rval, &gcollect, pstr, &wbuf);
602
603 str_sz = (width > 1024 ? 1024 : width);
604 if ((str = *pstr = (char *) malloc (str_sz)) == NULL)
605 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
606
607 gcollect = resize_gcollect (gcollect);
608 gcollect->ptrs[gcollect->count++] = pstr;
609 }
610 else
611 {
612 if (npos != 0)
613 str = (char *) get_va_nth (argp, npos);
614 else
615 str = va_arg (arg, char *);
616 if (!str)
617 return cleanup_return (rval, &gcollect, pstr, &wbuf);
618 }
619 }
620
621 if ((c = in_ch (s, &read_in)) == EOF)
622 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
623
624 if ((flags & IS_SUPPRESSED) == 0)
625 {
626 do
627 {
628 if ((flags & IS_ALLOC_USED) != 0 && str == (*pstr + str_sz))
629 {
630 new_sz = str_sz + (str_sz >= width ? width - 1 : str_sz);
631 while ((str = (char *) realloc (*pstr, new_sz)) == NULL
632 && new_sz > (size_t) (str_sz + 1))
633 new_sz = str_sz + 1;
634 if (!str)
635 {
636 release_ptrs (&gcollect, &wbuf);
637 return EOF;
638 }
639 *pstr = str;
640 str += str_sz;
641 str_sz = new_sz;
642 }
643 *str++ = c;
644 }
645 while (--width > 0 && (c = in_ch (s, &read_in)) != EOF);
646 }
647 else
648 while (--width > 0 && (c = in_ch (s, &read_in)) != EOF);
649
650 if ((flags & IS_SUPPRESSED) == 0)
651 {
652 optimize_alloc (pstr, str, str_sz);
653 pstr = NULL;
654 ++rval;
655 }
656
657 break;
658
659 case 'C':
660 if (width == -1)
661 width = 1;
662
663 if ((flags & IS_SUPPRESSED) == 0)
664 {
665 if ((flags & IS_ALLOC_USED) != 0)
666 {
667 if (npos != 0)
668 pstr = (char **) get_va_nth (argp, npos);
669 else
670 pstr = va_arg (arg, char **);
671
672 if (!pstr)
673 return cleanup_return (rval, &gcollect, pstr, &wbuf);
674 str_sz = (width > 1024 ? 1024 : width);
675 *pstr = (char *) malloc (str_sz * sizeof (wchar_t));
676 if ((wstr = (wchar_t *) *pstr) == NULL)
677 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
678 gcollect = resize_gcollect (gcollect);
679 gcollect->ptrs[gcollect->count++] = pstr;
680 }
681 else
682 {
683 if (npos != 0)
684 wstr = (wchar_t *) get_va_nth (argp, npos);
685 else
686 wstr = va_arg (arg, wchar_t *);
687 if (!wstr)
688 return cleanup_return (rval, &gcollect, pstr, &wbuf);
689 }
690 }
691
692 if ((c = in_ch (s, &read_in)) == EOF)
693 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
694
695 memset (&cstate, 0, sizeof (cstate));
696
697 do
698 {
699 buf[0] = c;
700
701 if ((flags & IS_SUPPRESSED) == 0 && (flags & IS_ALLOC_USED) != 0
702 && wstr == ((wchar_t *) *pstr + str_sz))
703 {
704 new_sz = str_sz + (str_sz > width ? width - 1 : str_sz);
705
706 while ((wstr = (wchar_t *) realloc (*pstr, new_sz * sizeof (wchar_t))) == NULL
707 && new_sz > (size_t) (str_sz + 1))
708 new_sz = str_sz + 1;
709 if (!wstr)
710 {
711 release_ptrs (&gcollect, &wbuf);
712 return EOF;
713 }
714 *pstr = (char *) wstr;
715 wstr += str_sz;
716 str_sz = new_sz;
717 }
718
719 while (1)
720 {
721 n = mbrtowc ((flags & IS_SUPPRESSED) == 0 ? wstr : NULL, buf, 1, &cstate);
722
723 if (n == (size_t) -2)
724 {
725 if ((c = in_ch (s, &read_in)) == EOF)
726 {
727 errno = EILSEQ;
728 return cleanup_return (rval, &gcollect, pstr, &wbuf);
729 }
730
731 buf[0] = c;
732 continue;
733 }
734
735 if (n != 1)
736 {
737 errno = EILSEQ;
738 return cleanup_return (rval, &gcollect, pstr, &wbuf);
739 }
740 break;
741 }
742
743 ++wstr;
744 }
745 while (--width > 0 && (c = in_ch (s, &read_in)) != EOF);
746
747 if ((flags & IS_SUPPRESSED) == 0)
748 {
749 optimize_alloc (pstr, (char *) wstr, str_sz * sizeof (wchar_t));
750 pstr = NULL;
751 ++rval;
752 }
753 break;
754
755 case 's':
756 if ((flags & IS_SUPPRESSED) == 0)
757 {
758 if ((flags & IS_ALLOC_USED) != 0)
759 {
760 if (npos != 0)
761 pstr = (char **) get_va_nth (argp, npos);
762 else
763 pstr = va_arg (arg, char **);
764
765 if (!pstr)
766 return cleanup_return (rval, &gcollect, pstr, &wbuf);
767
768 str_sz = 100;
769 if ((str = *pstr = (char *) malloc (100)) == NULL)
770 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
771 gcollect = resize_gcollect (gcollect);
772 gcollect->ptrs[gcollect->count++] = pstr;
773 }
774 else
775 {
776 if (npos != 0)
777 str = (char *) get_va_nth (argp, npos);
778 else
779 str = va_arg (arg, char *);
780 if (!str)
781 return cleanup_return (rval, &gcollect, pstr, &wbuf);
782 }
783 }
784
785 if ((c = in_ch (s, &read_in)) == EOF)
786 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
787
788 do
789 {
790 if (isspace (c))
791 {
792 back_ch (c, s, &read_in, 1);
793 break;
794 }
795
796 if ((flags & IS_SUPPRESSED) == 0)
797 {
798 *str++ = c;
799 if ((flags & IS_ALLOC_USED) != 0 && str == (*pstr + str_sz))
800 {
801 new_sz = str_sz * 2;
802
803 while ((str = (char *) realloc (*pstr, new_sz)) == NULL
804 && new_sz > (size_t) (str_sz + 1))
805 new_sz = str_sz + 1;
806 if (!str)
807 {
808 if ((flags & USE_POSIX_ALLOC) == 0)
809 {
810 (*pstr)[str_sz - 1] = 0;
811 pstr = NULL;
812 ++rval;
813 }
814 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
815 }
816 *pstr = str;
817 str += str_sz;
818 str_sz = new_sz;
819 }
820 }
821 }
822 while ((width <= 0 || --width > 0) && (c = in_ch (s, &read_in)) != EOF);
8234
824 if ((flags & IS_SUPPRESSED) == 0)5#include "mingw_sformat.h"
825 {
826 *str++ = 0;
827 optimize_alloc (pstr, str, str_sz);
828 pstr = NULL;
829 ++rval;
830 }
831 break;
832
833 case 'S':
834 if ((flags & IS_SUPPRESSED) == 0)
835 {
836 if ((flags & IS_ALLOC_USED) != 0)
837 {
838 if (npos != 0)
839 pstr = (char **) get_va_nth (argp, npos);
840 else
841 pstr = va_arg (arg, char **);
842
843 if (!pstr)
844 return cleanup_return (rval, &gcollect, pstr, &wbuf);
845
846 str_sz = 100;
847 *pstr = (char *) malloc (100 * sizeof (wchar_t));
848 if ((wstr = (wchar_t *) *pstr) == NULL)
849 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
850 gcollect = resize_gcollect (gcollect);
851 gcollect->ptrs[gcollect->count++] = pstr;
852 }
853 else
854 {
855 if (npos != 0)
856 wstr = (wchar_t *) get_va_nth (argp, npos);
857 else
858 wstr = va_arg (arg, wchar_t *);
859 if (!wstr)
860 return cleanup_return (rval, &gcollect, pstr, &wbuf);
861 }
862 }
863
864 if ((c = in_ch (s, &read_in)) == EOF)
865 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
866
867 memset (&cstate, 0, sizeof (cstate));
868
869 do
870 {
871 if (isspace (c))
872 {
873 back_ch (c, s, &read_in, 1);
874 break;
875 }
876
877 buf[0] = c;
878
879 while (1)
880 {
881 n = mbrtowc ((flags & IS_SUPPRESSED) == 0 ? wstr : NULL, buf, 1, &cstate);
882
883 if (n == (size_t) -2)
884 {
885 if ((c = in_ch (s, &read_in)) == EOF)
886 {
887 errno = EILSEQ;
888 return cleanup_return (rval, &gcollect, pstr, &wbuf);
889 }
890
891 buf[0] = c;
892 continue;
893 }
894
895 if (n != 1)
896 {
897 errno = EILSEQ;
898 return cleanup_return (rval, &gcollect, pstr, &wbuf);
899 }
900
901 ++wstr;
902 break;
903 }
904
905 if ((flags & IS_SUPPRESSED) == 0 && (flags & IS_ALLOC_USED) != 0
906 && wstr == ((wchar_t *) *pstr + str_sz))
907 {
908 new_sz = str_sz * 2;
909 while ((wstr = (wchar_t *) realloc (*pstr, new_sz * sizeof (wchar_t))) == NULL
910 && new_sz > (size_t) (str_sz + 1))
911 new_sz = str_sz + 1;
912 if (!wstr)
913 {
914 if ((flags & USE_POSIX_ALLOC) == 0)
915 {
916 ((wchar_t *) (*pstr))[str_sz - 1] = 0;
917 pstr = NULL;
918 ++rval;
919 }
920 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
921 }
922 *pstr = (char *) wstr;
923 wstr += str_sz;
924 str_sz = new_sz;
925 }
926 }
927 while ((width <= 0 || --width > 0) && (c = in_ch (s, &read_in)) != EOF);
928
929 if ((flags & IS_SUPPRESSED) == 0)
930 {
931 *wstr++ = 0;
932 optimize_alloc (pstr, (char *) wstr, str_sz * sizeof (wchar_t));
933 pstr = NULL;
934 ++rval;
935 }
936 break;
937
938 case 'd': case 'i':
939 case 'o': case 'p':
940 case 'u':
941 case 'x': case 'X':
942 switch (fc)
943 {
944 case 'd':
945 flags |= IS_SIGNED_NUM;
946 base = 10;
947 break;
948 case 'i':
949 flags |= IS_SIGNED_NUM;
950 base = 0;
951 break;
952 case 'o':
953 base = 8;
954 break;
955 case 'p':
956 base = 16;
957 flags &= ~(IS_S | IS_LL | IS_L);
958 #ifdef _WIN64
959 flags |= IS_LL;
960 #endif
961 flags |= IS_L | IS_POINTER;
962 break;
963 case 'u':
964 base = 10;
965 break;
966 case 'x': case 'X':
967 base = 16;
968 break;
969 }
970
971 if ((c = in_ch (s, &read_in)) == EOF)
972 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
973 if (c == '+' || c == '-')
974 {
975 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
976 wbuf[wbuf_cur_sz++] = c;
977 if (width > 0)
978 --width;
979 c = in_ch (s, &read_in);
980 }
981 if (width != 0 && c == '0')
982 {
983 if (width > 0)
984 --width;
985
986 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
987 wbuf[wbuf_cur_sz++] = c;
988 c = in_ch (s, &read_in);
989
990 if (width != 0 && tolower (c) == 'x')
991 {
992 if (!base)
993 base = 16;
994 if (base == 16)
995 {
996 if (width > 0)
997 --width;
998 c = in_ch (s, &read_in);
999 }
1000 }
1001 else if (!base)
1002 base = 8;
1003 }
1004
1005 if (!base)
1006 base = 10;
1007
1008 while (c != EOF && width != 0)
1009 {
1010 if (base == 16)
1011 {
1012 if (!isxdigit (c))
1013 break;
1014 }
1015 else if (!isdigit (c) || (int) (c - '0') >= base)
1016 {
1017 const char *p = lc_thousands_sep;
1018 int remain;
1019
1020 if (base != 10 || (flags & USE_GROUP) == 0)
1021 break;
1022 remain = width > 0 ? width : INT_MAX;
1023 while ((unsigned char) *p == c && remain >= 0)
1024 {
1025 /* As our conversion routines aren't supporting thousands
1026 separators, we are filtering them here. */
1027
1028 ++p;
1029 if (*p == 0 || !remain || (c = in_ch (s, &read_in)) == EOF)
1030 break;
1031 --remain;
1032 }
1033
1034 if (*p != 0)
1035 {
1036 if (p > lc_thousands_sep)
1037 {
1038 back_ch (c, s, &read_in, 0);
1039 while (--p > lc_thousands_sep)
1040 back_ch ((unsigned char) *p, s, &read_in, 1);
1041 c = (unsigned char) *p;
1042 }
1043 break;
1044 }
1045
1046 if (width > 0)
1047 width = remain;
1048 --wbuf_cur_sz;
1049 }
1050 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1051 wbuf[wbuf_cur_sz++] = c;
1052 if (width > 0)
1053 --width;
1054
1055 c = in_ch (s, &read_in);
1056 }
1057
1058 if (!wbuf_cur_sz || (wbuf_cur_sz == 1 && (wbuf[0] == '+' || wbuf[0] == '-')))
1059 {
1060 if (!wbuf_cur_sz && (flags & IS_POINTER) != 0
1061 && match_string (s, &read_in, &c, "(nil)"))
1062 {
1063 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1064 wbuf[wbuf_cur_sz++] = '0';
1065 }
1066 else
1067 {
1068 back_ch (c, s, &read_in, 0);
1069 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1070 }
1071 }
1072 else
1073 back_ch (c, s, &read_in, 0);
1074
1075 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1076 wbuf[wbuf_cur_sz++] = 0;
1077
1078 if ((flags & IS_LL))
1079 {
1080 if (flags & IS_SIGNED_NUM)
1081 cv_val.ll = strtoll (wbuf, &tmp_wbuf_ptr, base/*, flags & USE_GROUP*/);
1082 else
1083 cv_val.ull = strtoull (wbuf, &tmp_wbuf_ptr, base);
1084 }
1085 else
1086 {
1087 if (flags & IS_SIGNED_NUM)
1088 cv_val.l = strtol (wbuf, &tmp_wbuf_ptr, base/*, flags & USE_GROUP*/);
1089 else
1090 cv_val.ul = strtoul (wbuf, &tmp_wbuf_ptr, base);
1091 }
1092 if (wbuf == tmp_wbuf_ptr)
1093 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1094
1095 if ((flags & IS_SUPPRESSED) == 0)
1096 {
1097 if ((flags & IS_SIGNED_NUM) != 0)
1098 {
1099 if ((flags & IS_LL) != 0)
1100 *(npos != 0 ? (long long *) get_va_nth (argp, npos) : va_arg (arg, long long *)) = cv_val.ll;
1101 else if ((flags & IS_L) != 0)
1102 *(npos != 0 ? (long *) get_va_nth (argp, npos) : va_arg (arg, long *)) = cv_val.l;
1103 else if ((flags & IS_S) != 0)
1104 *(npos != 0 ? (short *) get_va_nth (argp, npos) : va_arg (arg, short *)) = (short) cv_val.l;
1105 else if ((flags & IS_C) != 0)
1106 *(npos != 0 ? (signed char *) get_va_nth (argp, npos) : va_arg (arg, signed char *)) = (signed char) cv_val.ul;
1107 else
1108 *(npos != 0 ? (int *) get_va_nth (argp, npos) : va_arg (arg, int *)) = (int) cv_val.l;
1109 }
1110 else
1111 {
1112 if ((flags & IS_LL) != 0)
1113 *(npos != 0 ? (unsigned long long *) get_va_nth (argp, npos) : va_arg (arg, unsigned long long *)) = cv_val.ull;
1114 else if ((flags & IS_L) != 0)
1115 *(npos != 0 ? (unsigned long *) get_va_nth (argp, npos) : va_arg (arg, unsigned long *)) = cv_val.ul;
1116 else if ((flags & IS_S) != 0)
1117 *(npos != 0 ? (unsigned short *) get_va_nth (argp, npos) : va_arg (arg, unsigned short *))
1118 = (unsigned short) cv_val.ul;
1119 else if ((flags & IS_C) != 0)
1120 *(npos != 0 ? (unsigned char *) get_va_nth (argp, npos) : va_arg (arg, unsigned char *)) = (unsigned char) cv_val.ul;
1121 else
1122 *(npos != 0 ? (unsigned int *) get_va_nth (argp, npos) : va_arg (arg, unsigned int *)) = (unsigned int) cv_val.ul;
1123 }
1124 ++rval;
1125 }
1126 break;
1127
1128 case 'e': case 'E':
1129 case 'f': case 'F':
1130 case 'g': case 'G':
1131 case 'a': case 'A':
1132 if (width > 0)
1133 --width;
1134 if ((c = in_ch (s, &read_in)) == EOF)
1135 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
1136
1137 seen_dot = seen_exp = 0;
1138 is_neg = (c == '-' ? 1 : 0);
1139
1140 if (c == '-' || c == '+')
1141 {
1142 if (width == 0 || (c = in_ch (s, &read_in)) == EOF)
1143 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1144 if (width > 0)
1145 --width;
1146 }
1147
1148 if (tolower (c) == 'n')
1149 {
1150 const char *match_txt = "nan";
1151
1152 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1153 wbuf[wbuf_cur_sz++] = c;
1154
1155 ++match_txt;
1156 do
1157 {
1158 if (width == 0 || (c = in_ch (s, &read_in)) == EOF || tolower (c) != match_txt[0])
1159 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1160
1161 if (width > 0)
1162 --width;
1163
1164 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1165 wbuf[wbuf_cur_sz++] = c;
1166 ++match_txt;
1167 }
1168 while (*match_txt != 0);
1169 }
1170 else if (tolower (c) == 'i')
1171 {
1172 const char *match_txt = "inf";
1173
1174 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1175 wbuf[wbuf_cur_sz++] = c;
1176
1177 ++match_txt;
1178 do
1179 {
1180 if (width == 0 || (c = in_ch (s, &read_in)) == EOF || tolower (c) != match_txt[0])
1181 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1182 if (width > 0)
1183 --width;
1184
1185 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1186 wbuf[wbuf_cur_sz++] = c;
1187 ++match_txt;
1188 }
1189 while (*match_txt != 0);
1190
1191 if (width != 0 && (c = in_ch (s, &read_in)) != EOF && tolower (c) == 'i')
1192 {
1193 match_txt = "inity";
1194
1195 if (width > 0)
1196 --width;
1197
1198 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1199 wbuf[wbuf_cur_sz++] = c;
1200 ++match_txt;
1201
1202 do
1203 {
1204 if (width == 0 || (c = in_ch (s, &read_in)) == EOF || tolower (c) != match_txt[0])
1205 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1206 if (width > 0)
1207 --width;
1208
1209 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1210 wbuf[wbuf_cur_sz++] = c;
1211 ++match_txt;
1212 }
1213 while (*match_txt != 0);
1214 }
1215 else if (width != 0 && c != EOF)
1216 back_ch (c, s, &read_in, 0);
1217 }
1218 else
1219 {
1220 not_in = 'e';
1221 if (width != 0 && c == '0')
1222 {
1223 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1224 wbuf[wbuf_cur_sz++] = c;
1225
1226 c = in_ch (s, &read_in);
1227 if (width > 0)
1228 --width;
1229 if (width != 0 && tolower (c) == 'x')
1230 {
1231 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1232 wbuf[wbuf_cur_sz++] = c;
1233
1234 flags |= IS_HEX_FLOAT;
1235 not_in = 'p';
1236
1237 flags &= ~USE_GROUP;
1238 c = in_ch (s, &read_in);
1239 if (width > 0)
1240 --width;
1241 }
1242 }
1243
1244 while (1)
1245 {
1246 if (isdigit (c) || (!seen_exp && (flags & IS_HEX_FLOAT) != 0 && isxdigit (c))
1247 || (seen_exp && wbuf[wbuf_cur_sz - 1] == not_in && (c == '-' || c == '+')))
1248 {
1249 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1250 wbuf[wbuf_cur_sz++] = c;
1251 }
1252 else if (wbuf_cur_sz > 0 && !seen_exp && (char) tolower (c) == not_in)
1253 {
1254 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1255 wbuf[wbuf_cur_sz++] = not_in;
1256 seen_exp = seen_dot = 1;
1257 }
1258 else
1259 {
1260 const char *p = lc_decimal_point;
1261 int remain = width > 0 ? width : INT_MAX;
1262
1263 if (! seen_dot)
1264 {
1265 while ((unsigned char) *p == c && remain >= 0)
1266 {
1267 ++p;
1268 if (*p == 0 || !remain || (c = in_ch (s, &read_in)) == EOF)
1269 break;
1270 --remain;
1271 }
1272 }
1273
1274 if (*p == 0)
1275 {
1276 for (p = lc_decimal_point; *p != 0; ++p)
1277 {
1278 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1279 wbuf[wbuf_cur_sz++] = (unsigned char) *p;
1280 }
1281 if (width > 0)
1282 width = remain;
1283 seen_dot = 1;
1284 }
1285 else
1286 {
1287 const char *pp = lc_thousands_sep;
1288
1289 if (!seen_dot && (flags & USE_GROUP) != 0)
1290 {
1291 while ((pp - lc_thousands_sep) < (p - lc_decimal_point)
1292 && *pp == lc_decimal_point[(pp - lc_thousands_sep)])
1293 ++pp;
1294 if ((pp - lc_thousands_sep) == (p - lc_decimal_point))
1295 {
1296 while ((unsigned char) *pp == c && remain >= 0)
1297 {
1298 ++pp;
1299 if (*pp == 0 || !remain || (c = in_ch (s, &read_in)) == EOF)
1300 break;
1301 --remain;
1302 }
1303 }
1304 }
1305
1306 if (pp != NULL && *pp == 0)
1307 {
1308 /* As our conversion routines aren't supporting thousands
1309 separators, we are filtering them here. */
1310 if (width > 0)
1311 width = remain;
1312 }
1313 else
1314 {
1315 back_ch (c, s, &read_in, 0);
1316 break;
1317 }
1318 }
1319 }
1320
1321 if (width == 0 || (c = in_ch (s, &read_in)) == EOF)
1322 break;
1323
1324 if (width > 0)
1325 --width;
1326 }
1327
1328 if (!wbuf_cur_sz || ((flags & IS_HEX_FLOAT) != 0 && wbuf_cur_sz == 2))
1329 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1330 }
1331
1332 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1333 wbuf[wbuf_cur_sz++] = 0;
1334
1335 if ((flags & IS_LL) != 0)
1336 {
1337 long double ld;
1338 ld = __mingw_strtold (wbuf, &tmp_wbuf_ptr/*, flags & USE_GROUP*/);
1339 if ((flags & IS_SUPPRESSED) == 0 && tmp_wbuf_ptr != wbuf)
1340 *(npos != 0 ? (long double *) get_va_nth (argp, npos) : va_arg (arg, long double *)) = is_neg ? -ld : ld;
1341 }
1342 else if ((flags & IS_L) != 0)
1343 {
1344 double d;
1345 d = (double) __mingw_strtold (wbuf, &tmp_wbuf_ptr/*, flags & USE_GROUP*/);
1346 if ((flags & IS_SUPPRESSED) == 0 && tmp_wbuf_ptr != wbuf)
1347 *(npos != 0 ? (double *) get_va_nth (argp, npos) : va_arg (arg, double *)) = is_neg ? -d : d;
1348 }
1349 else
1350 {
1351 float d = __mingw_strtof (wbuf, &tmp_wbuf_ptr/*, flags & USE_GROUP*/);
1352 if ((flags & IS_SUPPRESSED) == 0 && tmp_wbuf_ptr != wbuf)
1353 *(npos != 0 ? (float *) get_va_nth (argp, npos) : va_arg (arg, float *)) = is_neg ? -d : d;
1354 }
1355
1356 if (wbuf == tmp_wbuf_ptr)
1357 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1358
1359 if ((flags & IS_SUPPRESSED) == 0)
1360 ++rval;
1361 break;
1362
1363 case '[':
1364 if ((flags & IS_L) != 0)
1365 {
1366 if ((flags & IS_SUPPRESSED) == 0)
1367 {
1368 if ((flags & IS_ALLOC_USED) != 0)
1369 {
1370 if (npos != 0)
1371 pstr = (char **) get_va_nth (argp, npos);
1372 else
1373 pstr = va_arg (arg, char **);
1374
1375 if (!pstr)
1376 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1377
1378 str_sz = 100;
1379 *pstr = (char *) malloc (100 * sizeof (wchar_t));
1380
1381 if ((wstr = (wchar_t *) *pstr) == NULL)
1382 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
1383 gcollect = resize_gcollect (gcollect);
1384 gcollect->ptrs[gcollect->count++] = pstr;
1385 }
1386 else
1387 {
1388 if (npos != 0)
1389 wstr = (wchar_t *) get_va_nth (argp, npos);
1390 else
1391 wstr = va_arg (arg, wchar_t *);
1392 if (!wstr)
1393 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1394 }
1395 }
1396 }
1397 else if ((flags & IS_SUPPRESSED) == 0)
1398 {
1399 if ((flags & IS_ALLOC_USED) != 0)
1400 {
1401 if (npos != 0)
1402 pstr = (char **) get_va_nth (argp, npos);
1403 else
1404 pstr = va_arg (arg, char **);
1405
1406 if (!pstr)
1407 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1408
1409 str_sz = 100;
1410 if ((str = *pstr = (char *) malloc (100)) == NULL)
1411 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
1412
1413 gcollect = resize_gcollect (gcollect);
1414 gcollect->ptrs[gcollect->count++] = pstr;
1415 }
1416 else
1417 {
1418 if (npos != 0)
1419 str = (char *) get_va_nth (argp, npos);
1420 else
1421 str = va_arg (arg, char *);
1422 if (!str)
1423 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1424 }
1425 }
1426
1427 not_in = (*f == '^' ? 1 : 0);
1428 if (*f == '^')
1429 f++;
1430
1431 if (width < 0)
1432 width = INT_MAX;
1433
1434 if (wbuf_max_sz < 256)
1435 {
1436 wbuf_max_sz = 256;
1437 if (wbuf)
1438 free (wbuf);
1439 wbuf = (char *) malloc (wbuf_max_sz);
1440 }
1441 memset (wbuf, 0, 256);
1442
1443 fc = *f;
1444 if (fc == ']' || fc == '-')
1445 {
1446 wbuf[fc] = 1;
1447 ++f;
1448 }
1449
1450 while ((fc = *f++) != 0 && fc != ']')
1451 {
1452 if (fc == '-' && *f != 0 && *f != ']' && (unsigned char) f[-2] <= (unsigned char) *f)
1453 {
1454 for (fc = (unsigned char) f[-2]; fc < (unsigned char) *f; ++fc)
1455 wbuf[fc] = 1;
1456 }
1457 else
1458 wbuf[fc] = 1;
1459 }
1460
1461 if (!fc)
1462 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1463
1464 if ((flags & IS_L) != 0)
1465 {
1466 read_in_sv = read_in;
1467 cnt = 0;
1468
1469 if ((c = in_ch (s, &read_in)) == EOF)
1470 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
1471
1472 memset (&cstate, 0, sizeof (cstate));
1473
1474 do
1475 {
1476 if (wbuf[c] == not_in)
1477 {
1478 back_ch (c, s, &read_in, 1);
1479 break;
1480 }
1481
1482 if ((flags & IS_SUPPRESSED) == 0)
1483 {
1484 buf[0] = c;
1485 n = mbrtowc (wstr, buf, 1, &cstate);
1486
1487 if (n == (size_t) -2)
1488 {
1489 ++cnt;
1490 continue;
1491 }
1492 cnt = 0;
1493
1494 ++wstr;
1495 if ((flags & IS_ALLOC_USED) != 0 && wstr == ((wchar_t *) *pstr + str_sz))
1496 {
1497 new_sz = str_sz * 2;
1498 while ((wstr = (wchar_t *) realloc (*pstr, new_sz * sizeof (wchar_t))) == NULL
1499 && new_sz > (size_t) (str_sz + 1))
1500 new_sz = str_sz + 1;
1501 if (!wstr)
1502 {
1503 if ((flags & USE_POSIX_ALLOC) == 0)
1504 {
1505 ((wchar_t *) (*pstr))[str_sz - 1] = 0;
1506 pstr = NULL;
1507 ++rval;
1508 }
1509 else
1510 rval = EOF;
1511 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1512 }
1513 *pstr = (char *) wstr;
1514 wstr += str_sz;
1515 str_sz = new_sz;
1516 }
1517 }
1518
1519 if (--width <= 0)
1520 break;
1521 }
1522 while ((c = in_ch (s, &read_in)) != EOF);
1523
1524 if (cnt != 0)
1525 {
1526 errno = EILSEQ;
1527 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1528 }
1529
1530 if (read_in_sv == read_in)
1531 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1532
1533
1534 if ((flags & IS_SUPPRESSED) == 0)
1535 {
1536 *wstr++ = 0;
1537 optimize_alloc (pstr, (char *) wstr, str_sz * sizeof (wchar_t));
1538 pstr = NULL;
1539 ++rval;
1540 }
1541 }
1542 else
1543 {
1544 read_in_sv = read_in;
1545
1546 if ((c = in_ch (s, &read_in)) == EOF)
1547 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
1548
1549 do
1550 {
1551 if (wbuf[c] == not_in)
1552 {
1553 back_ch (c, s, &read_in, 1);
1554 break;
1555 }
1556
1557 if ((flags & IS_SUPPRESSED) == 0)
1558 {
1559 *str++ = c;
1560 if ((flags & IS_ALLOC_USED) != 0 && str == (*pstr + str_sz))
1561 {
1562 new_sz = str_sz * 2;
1563
1564 while ((str = (char *) realloc (*pstr, new_sz)) == NULL
1565 && new_sz > (size_t) (str_sz + 1))
1566 new_sz = str_sz + 1;
1567 if (!str)
1568 {
1569 if ((flags & USE_POSIX_ALLOC) == 0)
1570 {
1571 (*pstr)[str_sz - 1] = 0;
1572 pstr = NULL;
1573 ++rval;
1574 }
1575 else
1576 rval = EOF;
1577 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1578 }
1579 *pstr = str;
1580 str += str_sz;
1581 str_sz = new_sz;
1582 }
1583 }
1584 }
1585 while (--width > 0 && (c = in_ch (s, &read_in)) != EOF);
1586
1587 if (read_in_sv == read_in)
1588 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1589
1590 if ((flags & IS_SUPPRESSED) == 0)
1591 {
1592 *str++ = 0;
1593 optimize_alloc (pstr, str, str_sz);
1594 pstr = NULL;
1595 ++rval;
1596 }
1597 }
1598 break;
1599
1600 default:
1601 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1602 }
1603 }
1604
1605 if (ignore_ws)
1606 {
1607 while (isspace ((c = in_ch (s, &read_in))));
1608 back_ch (c, s, &read_in, 0);
1609 }
1610
1611 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1612}
16136
1614int7int
1615__mingw_vfscanf (FILE *s, const char *format, va_list argp)8__mingw_vfscanf (FILE *s, const char *format, va_list argp)
...@@ -1619,14 +12,3 @@ __mingw_vfscanf (FILE *s, const char *format, va_list argp)...@@ -1619,14 +12,3 @@ __mingw_vfscanf (FILE *s, const char *format, va_list argp)
1619 ifp.fp = s;12 ifp.fp = s;
1620 return __mingw_sformat (&ifp, format, argp);13 return __mingw_sformat (&ifp, format, argp);
1621}14}
1622
1623int
1624__mingw_vsscanf (const char *s, const char *format, va_list argp)
1625{
1626 _IFP ifp;
1627 memset (&ifp, 0, sizeof (_IFP));
1628 ifp.str = s;
1629 ifp.is_string = 1;
1630 return __mingw_sformat (&ifp, format, argp);
1631}
1632
lib/libc/mingw/stdio/mingw_vfwprintf.c created+9
...@@ -0,0 +1,9 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7
8#include "mingw_vfprintf.c"
9
lib/libc/mingw/stdio/mingw_vfwscanf.c created+14
...@@ -0,0 +1,14 @@
1#include <stdarg.h>
2#include <stdio.h>
3#include <string.h>
4
5#include "mingw_swformat.h"
6
7int
8__mingw_vfwscanf (FILE *s, const wchar_t *format, va_list argp)
9{
10 _IFPW ifp;
11 memset (&ifp, 0, sizeof (_IFPW));
12 ifp.fp = s;
13 return __mingw_swformat (&ifp, format, argp);
14}
lib/libc/mingw/stdio/mingw_vprintfw.c deleted-9
...@@ -1,9 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7
8#include "mingw_vprintf.c"
9
lib/libc/mingw/stdio/mingw_vsnprintf.c+18
...@@ -34,11 +34,20 @@ int __cdecl __vsnprintf(APICHAR *buf, size_t length, const APICHAR *fmt, va_list...@@ -34,11 +34,20 @@ int __cdecl __vsnprintf(APICHAR *buf, size_t length, const APICHAR *fmt, va_list
34 register int retval;34 register int retval;
3535
36 if( length == (size_t)(0) )36 if( length == (size_t)(0) )
37 {
38#if defined(__BUILD_WIDEAPI) && defined(__BUILD_WIDEAPI_ISO)
39 /* No buffer; for wide api ISO C95+ vswprintf() function
40 * simply returns negative value as required by ISO C95+.
41 */
42 return -1;
43#else
37 /*44 /*
38 * No buffer; simply compute and return the size required,45 * No buffer; simply compute and return the size required,
39 * without actually emitting any data.46 * without actually emitting any data.
40 */47 */
41 return __pformat( 0, buf, 0, fmt, argv);48 return __pformat( 0, buf, 0, fmt, argv);
49#endif
50 }
4251
43 /* If we get to here, then we have a buffer...52 /* If we get to here, then we have a buffer...
44 * Emit data up to the limit of buffer length less one,53 * Emit data up to the limit of buffer length less one,
...@@ -47,6 +56,15 @@ int __cdecl __vsnprintf(APICHAR *buf, size_t length, const APICHAR *fmt, va_list...@@ -47,6 +56,15 @@ int __cdecl __vsnprintf(APICHAR *buf, size_t length, const APICHAR *fmt, va_list
47 retval = __pformat( 0, buf, --length, fmt, argv );56 retval = __pformat( 0, buf, --length, fmt, argv );
48 buf[retval < (int) length ? retval : (int)length] = '\0';57 buf[retval < (int) length ? retval : (int)length] = '\0';
4958
59#if defined(__BUILD_WIDEAPI) && defined(__BUILD_WIDEAPI_ISO)
60 /* For wide api ISO C95+ vswprintf() when requested length
61 * is equal or larger than buffer length, returns negative
62 * value as required by ISO C95+.
63 */
64 if( retval >= (int) length )
65 retval = -1;
66#endif
67
50 return retval;68 return retval;
51}69}
5270
lib/libc/mingw/stdio/mingw_vsnprintfw.c deleted-9
...@@ -1,9 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7
8#include "mingw_vsnprintf.c"
9
lib/libc/mingw/stdio/mingw_vsnwprintf.c created+9
...@@ -0,0 +1,9 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7
8#include "mingw_vsnprintf.c"
9
lib/libc/mingw/stdio/mingw_vsprintfw.c deleted-10
...@@ -1,10 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7#define _CRT_NON_CONFORMING_SWPRINTFS 1
8
9#include "mingw_vsprintf.c"
10
lib/libc/mingw/stdio/mingw_vsscanf.c created+15
...@@ -0,0 +1,15 @@
1#include <stdarg.h>
2#include <stdio.h>
3#include <string.h>
4
5#include "mingw_sformat.h"
6
7int
8__mingw_vsscanf (const char *s, const char *format, va_list argp)
9{
10 _IFP ifp;
11 memset (&ifp, 0, sizeof (_IFP));
12 ifp.str = s;
13 ifp.is_string = 1;
14 return __mingw_sformat (&ifp, format, argp);
15}
lib/libc/mingw/stdio/mingw_vswprintf.c created+10
...@@ -0,0 +1,10 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7#define __BUILD_WIDEAPI_ISO 1
8
9#include "mingw_vsnprintf.c"
10
lib/libc/mingw/stdio/mingw_vswscanf.c created+15
...@@ -0,0 +1,15 @@
1#include <stdarg.h>
2#include <stdio.h>
3#include <string.h>
4
5#include "mingw_swformat.h"
6
7int
8__mingw_vswscanf (const wchar_t *s, const wchar_t *format, va_list argp)
9{
10 _IFPW ifp;
11 memset (&ifp, 0, sizeof (_IFPW));
12 ifp.str = s;
13 ifp.is_string = 1;
14 return __mingw_swformat (&ifp, format, argp);
15}
lib/libc/mingw/stdio/mingw_vwprintf.c created+9
...@@ -0,0 +1,9 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7
8#include "mingw_vprintf.c"
9
lib/libc/mingw/stdio/mingw_wpformat.c created+9
...@@ -0,0 +1,9 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7
8#include "mingw_pformat.c"
9
lib/libc/mingw/stdio/mingw_wprintf.c created+9
...@@ -0,0 +1,9 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#define __BUILD_WIDEAPI 1
7
8#include "mingw_printf.c"
9
lib/libc/mingw/stdio/mingw_wvfscanf.c deleted-1631
...@@ -1,1631 +0,0 @@
1/*
2 This Software is provided under the Zope Public License (ZPL) Version 2.1.
3
4 Copyright (c) 2011 by the mingw-w64 project
5
6 See the AUTHORS file for the list of contributors to the mingw-w64 project.
7
8 This license has been certified as open source. It has also been designated
9 as GPL compatible by the Free Software Foundation (FSF).
10
11 Redistribution and use in source and binary forms, with or without
12 modification, are permitted provided that the following conditions are met:
13
14 1. Redistributions in source code must retain the accompanying copyright
15 notice, this list of conditions, and the following disclaimer.
16 2. Redistributions in binary form must reproduce the accompanying
17 copyright notice, this list of conditions, and the following disclaimer
18 in the documentation and/or other materials provided with the
19 distribution.
20 3. Names of the copyright holders must not be used to endorse or promote
21 products derived from this software without prior written permission
22 from the copyright holders.
23 4. The right to distribute this software or to use it for any purpose does
24 not give you the right to use Servicemarks (sm) or Trademarks (tm) of
25 the copyright holders. Use of them is covered by separate agreement
26 with the copyright holders.
27 5. If any files are modified, you must cause the modified files to carry
28 prominent notices stating that you changed the files and the date of
29 any change.
30
31 Disclaimer
32
33 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
34 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
35 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
36 EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
37 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
38 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
39 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
40 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
41 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
42 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43*/
44
45#define __LARGE_MBSTATE_T
46
47#include <limits.h>
48#include <stddef.h>
49#include <stdarg.h>
50#include <stdio.h>
51#include <stdint.h>
52#include <stdlib.h>
53#include <string.h>
54#include <wchar.h>
55#include <ctype.h>
56#include <wctype.h>
57#include <locale.h>
58#include <errno.h>
59
60#ifndef CP_UTF8
61#define CP_UTF8 65001
62#endif
63
64#ifndef MB_ERR_INVALID_CHARS
65#define MB_ERR_INVALID_CHARS 0x00000008
66#endif
67
68/* Helper flags for conversion. */
69#define IS_C 0x0001
70#define IS_S 0x0002
71#define IS_L 0x0004
72#define IS_LL 0x0008
73#define IS_SIGNED_NUM 0x0010
74#define IS_POINTER 0x0020
75#define IS_HEX_FLOAT 0x0040
76#define IS_SUPPRESSED 0x0080
77#define USE_GROUP 0x0100
78#define USE_GNU_ALLOC 0x0200
79#define USE_POSIX_ALLOC 0x0400
80
81#define IS_ALLOC_USED (USE_GNU_ALLOC | USE_POSIX_ALLOC)
82
83/* internal stream structure with back-buffer. */
84typedef struct _IFP
85{
86 __extension__ union {
87 void *fp;
88 const wchar_t *str;
89 };
90 int bch[1024];
91 unsigned int is_string : 1;
92 int back_top;
93 unsigned int seen_eof : 1;
94} _IFP;
95
96static void *
97get_va_nth (va_list argp, unsigned int n)
98{
99 va_list ap;
100 if (!n)
101 abort ();
102 va_copy (ap, argp);
103 while (--n > 0)
104 (void) va_arg(ap, void *);
105 return va_arg (ap, void *);
106}
107
108static void
109optimize_alloc (char **p, char *end, size_t alloc_sz)
110{
111 size_t need_sz;
112 char *h;
113
114 if (!p || !*p)
115 return;
116
117 need_sz = end - *p;
118 if (need_sz == alloc_sz)
119 return;
120
121 if ((h = (char *) realloc (*p, need_sz)) != NULL)
122 *p = h;
123}
124
125static void
126back_ch (int c, _IFP *s, size_t *rin, int not_eof)
127{
128 if (!not_eof && c == WEOF)
129 return;
130 if (s->is_string == 0)
131 {
132 FILE *fp = s->fp;
133 ungetwc (c, fp);
134 rin[0] -= 1;
135 return;
136 }
137 rin[0] -= 1;
138 s->bch[s->back_top] = c;
139 s->back_top += 1;
140}
141
142static int
143in_ch (_IFP *s, size_t *rin)
144{
145 int r;
146 if (s->back_top)
147 {
148 s->back_top -= 1;
149 r = s->bch[s->back_top];
150 rin[0] += 1;
151 }
152 else if (s->seen_eof)
153 {
154 return WEOF;
155 }
156 else if (s->is_string)
157 {
158 const wchar_t *ps = s->str;
159 r = ((int) *ps) & 0xffff;
160 ps++;
161 if (r != 0)
162 {
163 rin[0] += 1;
164 s->str = ps;
165 return r;
166 }
167 s->seen_eof = 1;
168 return WEOF;
169 }
170 else
171 {
172 FILE *fp = (FILE *) s->fp;
173 r = getwc (fp);
174 if (r != WEOF)
175 rin[0] += 1;
176 else s->seen_eof = 1;
177 }
178 return r;
179}
180
181static int
182match_string (_IFP *s, size_t *rin, wint_t *c, const wchar_t *str)
183{
184 int ch = *c;
185
186 if (*str == 0)
187 return 1;
188
189 if (*str != (wchar_t) towlower (ch))
190 return 0;
191 ++str;
192 while (*str != 0)
193 {
194 if ((ch = in_ch (s, rin)) == WEOF)
195 {
196 c[0] = ch;
197 return 0;
198 }
199
200 if (*str != (wchar_t) towlower (ch))
201 {
202 c[0] = ch;
203 return 0;
204 }
205 ++str;
206 }
207 c[0] = ch;
208 return 1;
209}
210
211struct gcollect
212{
213 size_t count;
214 struct gcollect *next;
215 char **ptrs[32];
216};
217
218static void
219release_ptrs (struct gcollect **pt, wchar_t **wbuf)
220{
221 struct gcollect *pf;
222 size_t cnt;
223
224 if (wbuf)
225 {
226 free (*wbuf);
227 *wbuf = NULL;
228 }
229 if (!pt || (pf = *pt) == NULL)
230 return;
231 while (pf != NULL)
232 {
233 struct gcollect *pf_sv = pf;
234 for (cnt = 0; cnt < pf->count; ++cnt)
235 {
236 free (*pf->ptrs[cnt]);
237 *pf->ptrs[cnt] = NULL;
238 }
239 pf = pf->next;
240 free (pf_sv);
241 }
242 *pt = NULL;
243}
244
245static int
246cleanup_return (int rval, struct gcollect **pfree, char **strp, wchar_t **wbuf)
247{
248 if (rval == EOF)
249 release_ptrs (pfree, wbuf);
250 else
251 {
252 if (pfree)
253 {
254 struct gcollect *pf = *pfree, *pf_sv;
255 while (pf != NULL)
256 {
257 pf_sv = pf;
258 pf = pf->next;
259 free (pf_sv);
260 }
261 *pfree = NULL;
262 }
263 if (strp != NULL)
264 {
265 free (*strp);
266 *strp = NULL;
267 }
268 if (wbuf)
269 {
270 free (*wbuf);
271 *wbuf = NULL;
272 }
273 }
274 return rval;
275}
276
277static struct gcollect *
278resize_gcollect (struct gcollect *pf)
279{
280 struct gcollect *np;
281 if (pf && pf->count < 32)
282 return pf;
283 np = malloc (sizeof (struct gcollect));
284 np->count = 0;
285 np->next = pf;
286 return np;
287}
288
289static wchar_t *
290resize_wbuf (size_t wpsz, size_t *wbuf_max_sz, wchar_t *old)
291{
292 wchar_t *wbuf;
293 size_t nsz;
294 if (*wbuf_max_sz != wpsz)
295 return old;
296 nsz = (256 > (2 * wbuf_max_sz[0]) ? 256 : (2 * wbuf_max_sz[0]));
297 if (!old)
298 wbuf = (wchar_t *) malloc (nsz * sizeof (wchar_t));
299 else
300 wbuf = (wchar_t *) realloc (old, nsz * sizeof (wchar_t));
301 if (!wbuf)
302 {
303 if (old)
304 free (old);
305 }
306 else
307 *wbuf_max_sz = nsz;
308 return wbuf;
309}
310
311static int
312__mingw_swformat (_IFP *s, const wchar_t *format, va_list argp)
313{
314 const wchar_t *f = format;
315 struct gcollect *gcollect = NULL;
316 size_t read_in = 0, wbuf_max_sz = 0;
317 ssize_t str_sz = 0;
318 char *str = NULL, **pstr = NULL;;
319 wchar_t *wstr = NULL, *wbuf = NULL;
320 wint_t c = 0, rval = 0;
321 int ignore_ws = 0;
322 va_list arg;
323 size_t wbuf_cur_sz, str_len, read_in_sv, new_sz, n;
324 unsigned int fc, npos;
325 int width, flags, base = 0, errno_sv, clen;
326 char seen_dot, seen_exp, is_neg, *nstr, buf[MB_LEN_MAX];
327 wchar_t wc, not_in, *tmp_wbuf_ptr, *temp_wbuf_end, *wbuf_iter;
328 wint_t lc_decimal_point, lc_thousands_sep;
329 mbstate_t state;
330 union {
331 unsigned long long ull;
332 unsigned long ul;
333 long long ll;
334 long l;
335 } cv_val;
336
337 arg = argp;
338
339 if (!s || s->fp == NULL || !format)
340 {
341 errno = EINVAL;
342 return EOF;
343 }
344
345 memset (&state, 0, sizeof(state));
346 clen = mbrtowc( &wc, localeconv()->decimal_point, 16, &state);
347 lc_decimal_point = (clen > 0 ? wc : '.');
348 memset( &state, 0, sizeof( state ) );
349 clen = mbrtowc( &wc, localeconv()->thousands_sep, 16, &state);
350 lc_thousands_sep = (clen > 0 ? wc : 0);
351
352 while (*f != 0)
353 {
354 fc = *f++;
355 if (fc != '%')
356 {
357 if (iswspace (fc))
358 ignore_ws = 1;
359 else
360 {
361 if ((c = in_ch (s, &read_in)) == WEOF)
362 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
363
364 if (ignore_ws)
365 {
366 ignore_ws = 0;
367 if (iswspace (c))
368 {
369 do
370 {
371 if ((c = in_ch (s, &read_in)) == WEOF)
372 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
373 }
374 while (iswspace (c));
375 }
376 }
377
378 if (c != fc)
379 {
380 back_ch (c, s, &read_in, 0);
381 return cleanup_return (rval, &gcollect, pstr, &wbuf);
382 }
383 }
384
385 continue;
386 }
387
388 width = flags = 0;
389 npos = 0;
390 wbuf_cur_sz = 0;
391
392 if (iswdigit ((unsigned int) *f))
393 {
394 const wchar_t *svf = f;
395 npos = (unsigned int) *f++ - '0';
396 while (iswdigit ((unsigned int) *f))
397 npos = npos * 10 + ((unsigned int) *f++ - '0');
398 if (*f != '$')
399 {
400 npos = 0;
401 f = svf;
402 }
403 else
404 f++;
405 }
406
407 do
408 {
409 if (*f == '*')
410 flags |= IS_SUPPRESSED;
411 else if (*f == '\'')
412 {
413 if (lc_thousands_sep)
414 flags |= USE_GROUP;
415 }
416 else if (*f == 'I')
417 {
418 /* we don't support locale's digits (i18N), but ignore it for now silently. */
419 ;
420#ifdef _WIN32
421 if (f[1] == '6' && f[2] == '4')
422 {
423 flags |= IS_LL | IS_L;
424 f += 2;
425 }
426 else if (f[1] == '3' && f[2] == '2')
427 {
428 flags |= IS_L;
429 f += 2;
430 }
431 else
432 {
433#ifdef _WIN64
434 flags |= IS_LL | IS_L;
435#else
436 flags |= IS_L;
437#endif
438 }
439#endif
440 }
441 else
442 break;
443 ++f;
444 }
445 while (1);
446
447 while (iswdigit ((unsigned char) *f))
448 width = width * 10 + ((unsigned char) *f++ - '0');
449
450 if (!width)
451 width = -1;
452
453 switch (*f)
454 {
455 case 'h':
456 ++f;
457 flags |= (*f == 'h' ? IS_C : IS_S);
458 if (*f == 'h')
459 ++f;
460 break;
461 case 'l':
462 ++f;
463 flags |= (*f == 'l' ? IS_LL : 0) | IS_L;
464 if (*f == 'l')
465 ++f;
466 break;
467 case 'q': case 'L':
468 ++f;
469 flags |= IS_LL | IS_L;
470 break;
471 case 'a':
472 if (f[1] != 's' && f[1] != 'S' && f[1] != '[')
473 break;
474 ++f;
475 flags |= USE_GNU_ALLOC;
476 break;
477 case 'm':
478 flags |= USE_POSIX_ALLOC;
479 ++f;
480 if (*f == 'l')
481 {
482 flags |= IS_L;
483 ++f;
484 }
485 break;
486 case 'z':
487#ifdef _WIN64
488 flags |= IS_LL | IS_L;
489#else
490 flags |= IS_L;
491#endif
492 ++f;
493 break;
494 case 'j':
495 if (sizeof (uintmax_t) > sizeof (unsigned long))
496 flags |= IS_LL;
497 else if (sizeof (uintmax_t) > sizeof (unsigned int))
498 flags |= IS_L;
499 ++f;
500 break;
501 case 't':
502#ifdef _WIN64
503 flags |= IS_LL;
504#else
505 flags |= IS_L;
506#endif
507 ++f;
508 break;
509 case 0:
510 return cleanup_return (rval, &gcollect, pstr, &wbuf);
511 default:
512 break;
513 }
514
515 if (*f == 0)
516 return cleanup_return (rval, &gcollect, pstr, &wbuf);
517
518 fc = *f++;
519 if (ignore_ws || (fc != '[' && fc != 'c' && fc != 'C' && fc != 'n'))
520 {
521 errno_sv = errno;
522 errno = 0;
523 do
524 {
525 if ((c == WEOF || (c = in_ch (s, &read_in)) == WEOF) && errno == EINTR)
526 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
527 }
528 while (iswspace (c));
529
530 ignore_ws = 0;
531 errno = errno_sv;
532 back_ch (c, s, &read_in, 0);
533 }
534
535 switch (fc)
536 {
537 case 'c':
538 if ((flags & IS_L) != 0)
539 fc = 'C';
540 break;
541 case 's':
542 if ((flags & IS_L) != 0)
543 fc = 'S';
544 break;
545 }
546
547 switch (fc)
548 {
549 case '%':
550 if ((c = in_ch (s, &read_in)) == WEOF)
551 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
552 if (c != fc)
553 {
554 back_ch (c, s, &read_in, 1);
555 return cleanup_return (rval, &gcollect, pstr, &wbuf);
556 }
557 break;
558
559 case 'n':
560 if ((flags & IS_SUPPRESSED) == 0)
561 {
562 if ((flags & IS_LL) != 0)
563 *(npos != 0 ? (long long *) get_va_nth (argp, npos) : va_arg (arg, long long *)) = read_in;
564 else if ((flags & IS_L) != 0)
565 *(npos != 0 ? (long *) get_va_nth (argp, npos) : va_arg (arg, long *)) = read_in;
566 else if ((flags & IS_S) != 0)
567 *(npos != 0 ? (short *) get_va_nth (argp, npos) : va_arg (arg, short *)) = read_in;
568 else if ((flags & IS_C) != 0)
569 *(npos != 0 ? (char *) get_va_nth (argp, npos) : va_arg (arg, char *)) = read_in;
570 else
571 *(npos != 0 ? (int *) get_va_nth (argp, npos) : va_arg (arg, int *)) = read_in;
572 }
573 break;
574
575 case 'c':
576 if (width == -1)
577 width = 1;
578
579 if ((flags & IS_SUPPRESSED) == 0)
580 {
581 if ((flags & IS_ALLOC_USED) != 0)
582 {
583 if (npos != 0)
584 pstr = (char **) get_va_nth (argp, npos);
585 else
586 pstr = va_arg (arg, char **);
587
588 if (!pstr)
589 return cleanup_return (rval, &gcollect, pstr, &wbuf);
590 str_sz = 100;
591 if ((str = *pstr = (char *) malloc (100)) == NULL)
592 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
593 gcollect = resize_gcollect (gcollect);
594 gcollect->ptrs[gcollect->count++] = pstr;
595 }
596 else
597 {
598 if (npos != 0)
599 str = (char *) get_va_nth (argp, npos);
600 else
601 str = va_arg (arg, char *);
602 if (!str)
603 return cleanup_return (rval, &gcollect, pstr, &wbuf);
604 }
605 }
606 if ((c = in_ch (s, &read_in)) == WEOF)
607 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
608
609 memset (&state, 0, sizeof (state));
610
611 do
612 {
613 if ((flags & IS_SUPPRESSED) == 0 && (flags & USE_POSIX_ALLOC) != 0
614 && (str + MB_CUR_MAX) >= (*pstr + str_sz))
615 {
616 new_sz = str_sz * 2;
617 str_len = (str - *pstr);
618 while ((nstr = (char *) realloc (*pstr, new_sz)) == NULL
619 && new_sz > (str_len + MB_CUR_MAX))
620 new_sz = str_len + MB_CUR_MAX;
621 if (!nstr)
622 {
623 release_ptrs (&gcollect, &wbuf);
624 return EOF;
625 }
626 *pstr = nstr;
627 str = nstr + str_len;
628 str_sz = new_sz;
629 }
630
631 n = wcrtomb ((flags & IS_SUPPRESSED) == 0 ? str : NULL, c, &state);
632 if (n == (size_t) -1LL)
633 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
634 str += n;
635 }
636 while (--width > 0 && (c = in_ch (s, &read_in)) != WEOF);
637
638 if ((flags & IS_SUPPRESSED) == 0)
639 {
640 optimize_alloc (pstr, str, str_sz);
641 pstr = NULL;
642 ++rval;
643 }
644
645 break;
646
647 case 'C':
648 if (width == -1)
649 width = 1;
650
651 if ((flags & IS_SUPPRESSED) == 0)
652 {
653 if ((flags & IS_ALLOC_USED) != 0)
654 {
655 if (npos != 0)
656 pstr = (char **) get_va_nth (argp, npos);
657 else
658 pstr = va_arg (arg, char **);
659
660 if (!pstr)
661 return cleanup_return (rval, &gcollect, pstr, &wbuf);
662 str_sz = (width > 1024 ? 1024 : width);
663 *pstr = (char *) malloc (str_sz * sizeof (wchar_t));
664 if ((wstr = (wchar_t *) *pstr) == NULL)
665 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
666
667 if ((wstr = (wchar_t *) *pstr) != NULL)
668 {
669 gcollect = resize_gcollect (gcollect);
670 gcollect->ptrs[gcollect->count++] = pstr;
671 }
672 }
673 else
674 {
675 if (npos != 0)
676 wstr = (wchar_t *) get_va_nth (argp, npos);
677 else
678 wstr = va_arg (arg, wchar_t *);
679 if (!wstr)
680 return cleanup_return (rval, &gcollect, pstr, &wbuf);
681 }
682 }
683
684 if ((c = in_ch (s, &read_in)) == WEOF)
685 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
686
687 if ((flags & IS_SUPPRESSED) == 0)
688 {
689 do
690 {
691 if ((flags & IS_ALLOC_USED) != 0
692 && wstr == ((wchar_t *) *pstr + str_sz))
693 {
694 new_sz = str_sz + (str_sz > width ? width - 1 : str_sz);
695 while ((wstr = (wchar_t *) realloc (*pstr,
696 new_sz * sizeof (wchar_t))) == NULL
697 && new_sz > (size_t) (str_sz + 1))
698 new_sz = str_sz + 1;
699 if (!wstr)
700 {
701 release_ptrs (&gcollect, &wbuf);
702 return EOF;
703 }
704 *pstr = (char *) wstr;
705 wstr += str_sz;
706 str_sz = new_sz;
707 }
708 *wstr++ = c;
709 }
710 while (--width > 0 && (c = in_ch (s, &read_in)) != WEOF);
711 }
712 else
713 {
714 while (--width > 0 && (c = in_ch (s, &read_in)) != WEOF);
715 }
716
717 if ((flags & IS_SUPPRESSED) == 0)
718 {
719 optimize_alloc (pstr, (char *) wstr, str_sz * sizeof (wchar_t));
720 pstr = NULL;
721 ++rval;
722 }
723 break;
724
725 case 's':
726 if ((flags & IS_SUPPRESSED) == 0)
727 {
728 if ((flags & IS_ALLOC_USED) != 0)
729 {
730 if (npos != 0)
731 pstr = (char **) get_va_nth (argp, npos);
732 else
733 pstr = va_arg (arg, char **);
734
735 if (!pstr)
736 return cleanup_return (rval, &gcollect, pstr, &wbuf);
737 str_sz = 100;
738 if ((str = *pstr = (char *) malloc (100)) == NULL)
739 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
740 gcollect = resize_gcollect (gcollect);
741 gcollect->ptrs[gcollect->count++] = pstr;
742 }
743 else
744 {
745 if (npos != 0)
746 str = (char *) get_va_nth (argp, npos);
747 else
748 str = va_arg (arg, char *);
749 if (!str)
750 return cleanup_return (rval, &gcollect, pstr, &wbuf);
751 }
752 }
753
754 if ((c = in_ch (s, &read_in)) == WEOF)
755 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
756
757 memset (&state, 0, sizeof (state));
758
759 do
760 {
761 if (iswspace (c))
762 {
763 back_ch (c, s, &read_in, 1);
764 break;
765 }
766
767 {
768 if ((flags & IS_SUPPRESSED) == 0 && (flags & IS_ALLOC_USED) != 0
769 && (str + MB_CUR_MAX) >= (*pstr + str_sz))
770 {
771 new_sz = str_sz * 2;
772 str_len = (str - *pstr);
773
774 while ((nstr = (char *) realloc (*pstr, new_sz)) == NULL
775 && new_sz > (str_len + MB_CUR_MAX))
776 new_sz = str_len + MB_CUR_MAX;
777 if (!nstr)
778 {
779 if ((flags & USE_POSIX_ALLOC) == 0)
780 {
781 (*pstr)[str_len] = 0;
782 pstr = NULL;
783 ++rval;
784 }
785 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
786 }
787 *pstr = nstr;
788 str = nstr + str_len;
789 str_sz = new_sz;
790 }
791
792 n = wcrtomb ((flags & IS_SUPPRESSED) == 0 ? str : NULL, c,
793 &state);
794 if (n == (size_t) -1LL)
795 {
796 errno = EILSEQ;
797 return cleanup_return (rval, &gcollect, pstr, &wbuf);
798 }
799
800 str += n;
801 }
802 }
803 while ((width <= 0 || --width > 0) && (c = in_ch (s, &read_in)) != WEOF);
804
805 if ((flags & IS_SUPPRESSED) == 0)
806 {
807 n = wcrtomb (buf, 0, &state);
808 if (n > 0 && (flags & IS_ALLOC_USED) != 0
809 && (str + n) >= (*pstr + str_sz))
810 {
811 str_len = (str - *pstr);
812
813 if ((nstr = (char *) realloc (*pstr, str_len + n + 1)) == NULL)
814 {
815 if ((flags & USE_POSIX_ALLOC) == 0)
816 {
817 (*pstr)[str_len] = 0;
818 pstr = NULL;
819 ++rval;
820 }
821 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
822 }
823 *pstr = nstr;
824 str = nstr + str_len;
825 str_sz = str_len + n + 1;
826 }
827
828 if (n)
829 {
830 memcpy (str, buf, n);
831 str += n;
832 }
833 *str++ = 0;
834
835 optimize_alloc (pstr, str, str_sz);
836 pstr = NULL;
837 ++rval;
838 }
839 break;
840
841 case 'S':
842 if ((flags & IS_SUPPRESSED) == 0)
843 {
844 if ((flags & IS_ALLOC_USED) != 0)
845 {
846 if (npos != 0)
847 pstr = (char **) get_va_nth (argp, npos);
848 else
849 pstr = va_arg (arg, char **);
850
851 if (!pstr)
852 return cleanup_return (rval, &gcollect, pstr, &wbuf);
853 str_sz = 100;
854 *pstr = (char *) malloc (100 * sizeof (wchar_t));
855 if ((wstr = (wchar_t *) *pstr) == NULL)
856 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
857 gcollect = resize_gcollect (gcollect);
858 gcollect->ptrs[gcollect->count++] = pstr;
859 }
860 else
861 {
862 if (npos != 0)
863 wstr = (wchar_t *) get_va_nth (argp, npos);
864 else
865 wstr = va_arg (arg, wchar_t *);
866 if (!wstr)
867 return cleanup_return (rval, &gcollect, pstr, &wbuf);
868 }
869 }
870 if ((c = in_ch (s, &read_in)) == WEOF)
871 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
872
873 do
874 {
875 if (iswspace (c))
876 {
877 back_ch (c, s, &read_in, 1);
878 break;
879 }
880
881 if ((flags & IS_SUPPRESSED) == 0)
882 {
883 *wstr++ = c;
884 if ((flags & IS_ALLOC_USED) != 0 && wstr == ((wchar_t *) *pstr + str_sz))
885 {
886 new_sz = str_sz * 2;
887
888 while ((wstr = (wchar_t *) realloc (*pstr,
889 new_sz * sizeof (wchar_t))) == NULL
890 && new_sz > (size_t) (str_sz + 1))
891 new_sz = str_sz + 1;
892 if (!wstr)
893 {
894 if ((flags & USE_POSIX_ALLOC) == 0)
895 {
896 ((wchar_t *) (*pstr))[str_sz - 1] = 0;
897 pstr = NULL;
898 ++rval;
899 }
900 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
901 }
902 *pstr = (char *) wstr;
903 wstr += str_sz;
904 str_sz = new_sz;
905 }
906 }
907 }
908 while ((width <= 0 || --width > 0) && (c = in_ch (s, &read_in)) != WEOF);
909
910 if ((flags & IS_SUPPRESSED) == 0)
911 {
912 *wstr++ = 0;
913
914 optimize_alloc (pstr, (char *) wstr, str_sz * sizeof (wchar_t));
915 pstr = NULL;
916 ++rval;
917 }
918 break;
919
920 case 'd': case 'i':
921 case 'o': case 'p':
922 case 'u':
923 case 'x': case 'X':
924 switch (fc)
925 {
926 case 'd':
927 flags |= IS_SIGNED_NUM;
928 base = 10;
929 break;
930 case 'i':
931 flags |= IS_SIGNED_NUM;
932 base = 0;
933 break;
934 case 'o':
935 base = 8;
936 break;
937 case 'p':
938 base = 16;
939 flags &= ~(IS_S | IS_LL | IS_L);
940 #ifdef _WIN64
941 flags |= IS_LL;
942 #endif
943 flags |= IS_L | IS_POINTER;
944 break;
945 case 'u':
946 base = 10;
947 break;
948 case 'x': case 'X':
949 base = 16;
950 break;
951 }
952
953 if ((c = in_ch (s, &read_in)) == WEOF)
954 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
955
956 if (c == '+' || c == '-')
957 {
958 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
959 wbuf[wbuf_cur_sz++] = c;
960
961 if (width > 0)
962 --width;
963 c = in_ch (s, &read_in);
964 }
965
966 if (width != 0 && c == '0')
967 {
968 if (width > 0)
969 --width;
970
971 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
972 wbuf[wbuf_cur_sz++] = c;
973
974 c = in_ch (s, &read_in);
975
976 if (width != 0 && towlower (c) == 'x')
977 {
978 if (!base)
979 base = 16;
980 if (base == 16)
981 {
982 if (width > 0)
983 --width;
984 c = in_ch (s, &read_in);
985 }
986 }
987 else if (!base)
988 base = 8;
989 }
990
991 if (!base)
992 base = 10;
993
994 while (c != WEOF && width != 0)
995 {
996 if (base == 16)
997 {
998 if (!iswxdigit (c))
999 break;
1000 }
1001 else if (!iswdigit (c) || (int) (c - '0') >= base)
1002 {
1003 if (base != 10 || (flags & USE_GROUP) == 0 || c != lc_thousands_sep)
1004 break;
1005 }
1006 if (c != lc_thousands_sep)
1007 {
1008 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1009 wbuf[wbuf_cur_sz++] = c;
1010 }
1011
1012 if (width > 0)
1013 --width;
1014
1015 c = in_ch (s, &read_in);
1016 }
1017
1018 if (!wbuf_cur_sz || (wbuf_cur_sz == 1 && (wbuf[0] == '+' || wbuf[0] == '-')))
1019 {
1020 if (!wbuf_cur_sz && (flags & IS_POINTER) != 0
1021 && match_string (s, &read_in, &c, L"(nil)"))
1022 {
1023 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1024 wbuf[wbuf_cur_sz++] = '0';
1025 }
1026 else
1027 {
1028 back_ch (c, s, &read_in, 0);
1029 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1030 }
1031 }
1032 else
1033 back_ch (c, s, &read_in, 0);
1034
1035 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1036 wbuf[wbuf_cur_sz++] = 0;
1037
1038 if ((flags & IS_LL) != 0)
1039 {
1040 if ((flags & IS_SIGNED_NUM) != 0)
1041 cv_val.ll = wcstoll (wbuf, &tmp_wbuf_ptr, base/*, flags & USE_GROUP*/);
1042 else
1043 cv_val.ull = wcstoull (wbuf, &tmp_wbuf_ptr, base/*, flags & USE_GROUP*/);
1044 }
1045 else
1046 {
1047 if ((flags & IS_SIGNED_NUM) != 0)
1048 cv_val.l = wcstol (wbuf, &tmp_wbuf_ptr, base/*, flags & USE_GROUP*/);
1049 else
1050 cv_val.ul = wcstoul (wbuf, &tmp_wbuf_ptr, base/*, flags & USE_GROUP*/);
1051 }
1052 if (wbuf == tmp_wbuf_ptr)
1053 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1054
1055 if ((flags & IS_SUPPRESSED) == 0)
1056 {
1057 if ((flags & IS_SIGNED_NUM) != 0)
1058 {
1059 if ((flags & IS_LL) != 0)
1060 *(npos != 0 ? (long long *) get_va_nth (argp, npos) : va_arg (arg, long long *)) = cv_val.ll;
1061 else if ((flags & IS_L) != 0)
1062 *(npos != 0 ? (long *) get_va_nth (argp, npos) : va_arg (arg, long *)) = cv_val.l;
1063 else if ((flags & IS_S) != 0)
1064 *(npos != 0 ? (short *) get_va_nth (argp, npos) : va_arg (arg, short *)) = (short) cv_val.l;
1065 else if ((flags & IS_C) != 0)
1066 *(npos != 0 ? (signed char *) get_va_nth (argp, npos) : va_arg (arg, signed char *)) = (signed char) cv_val.ul;
1067 else
1068 *(npos != 0 ? (int *) get_va_nth (argp, npos) : va_arg (arg, int *)) = (int) cv_val.l;
1069 }
1070 else
1071 {
1072 if ((flags & IS_LL) != 0)
1073 *(npos != 0 ? (unsigned long long *) get_va_nth (argp, npos) : va_arg (arg, unsigned long long *)) = cv_val.ull;
1074 else if ((flags & IS_L) != 0)
1075 *(npos != 0 ? (unsigned long *) get_va_nth (argp, npos) : va_arg (arg, unsigned long *)) = cv_val.ul;
1076 else if ((flags & IS_S) != 0)
1077 *(npos != 0 ? (unsigned short *) get_va_nth (argp, npos) : va_arg (arg, unsigned short *))
1078 = (unsigned short) cv_val.ul;
1079 else if ((flags & IS_C) != 0)
1080 *(npos != 0 ? (unsigned char *) get_va_nth (argp, npos) : va_arg (arg, unsigned char *)) = (unsigned char) cv_val.ul;
1081 else
1082 *(npos != 0 ? (unsigned int *) get_va_nth (argp, npos) : va_arg (arg, unsigned int *)) = (unsigned int) cv_val.ul;
1083 }
1084 ++rval;
1085 }
1086 break;
1087
1088 case 'e': case 'E':
1089 case 'f': case 'F':
1090 case 'g': case 'G':
1091 case 'a': case 'A':
1092 if (width > 0)
1093 --width;
1094 if ((c = in_ch (s, &read_in)) == WEOF)
1095 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
1096
1097 seen_dot = seen_exp = 0;
1098 is_neg = (c == '-' ? 1 : 0);
1099
1100 if (c == '-' || c == '+')
1101 {
1102 if (width == 0 || (c = in_ch (s, &read_in)) == WEOF)
1103 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1104 if (width > 0)
1105 --width;
1106 }
1107
1108 if (towlower (c) == 'n')
1109 {
1110 const wchar_t *match_txt = L"nan";
1111
1112 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1113 wbuf[wbuf_cur_sz++] = c;
1114
1115 ++match_txt;
1116 do
1117 {
1118 if (width == 0 || (c = in_ch (s, &read_in)) == WEOF
1119 || towlower (c) != match_txt[0])
1120 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1121 if (width > 0)
1122 --width;
1123
1124 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1125 wbuf[wbuf_cur_sz++] = c;
1126 ++match_txt;
1127 }
1128 while (*match_txt != 0);
1129 }
1130 else if (towlower (c) == 'i')
1131 {
1132 const wchar_t *match_txt = L"inf";
1133
1134 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1135 wbuf[wbuf_cur_sz++] = c;
1136
1137 ++match_txt;
1138 do
1139 {
1140 if (width == 0 || (c = in_ch (s, &read_in)) == WEOF
1141 || towlower (c) != match_txt[0])
1142 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1143 if (width > 0)
1144 --width;
1145
1146 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1147 wbuf[wbuf_cur_sz++] = c;
1148 ++match_txt;
1149 }
1150 while (*match_txt != 0);
1151
1152 if (width != 0 && (c = in_ch (s, &read_in)) != WEOF && towlower (c) == 'i')
1153 {
1154 match_txt = L"inity";
1155 if (width > 0)
1156 --width;
1157
1158 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1159 wbuf[wbuf_cur_sz++] = c;
1160
1161 ++match_txt;
1162 do
1163 {
1164 if (width == 0 || (c = in_ch (s, &read_in)) == WEOF
1165 || towlower (c) != match_txt[0])
1166 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1167 if (width > 0)
1168 --width;
1169 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1170 wbuf[wbuf_cur_sz++] = c;
1171 ++match_txt;
1172 }
1173 while (*match_txt != 0);
1174 }
1175 else if (width != 0 && c != WEOF)
1176 back_ch (c, s, &read_in, 0);
1177 }
1178 else
1179 {
1180 not_in = 'e';
1181 if (width != 0 && c == '0')
1182 {
1183 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1184 wbuf[wbuf_cur_sz++] = c;
1185
1186 c = in_ch (s, &read_in);
1187 if (width > 0)
1188 --width;
1189 if (width != 0 && towlower (c) == 'x')
1190 {
1191 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1192 wbuf[wbuf_cur_sz++] = c;
1193 flags |= IS_HEX_FLOAT;
1194 not_in = 'p';
1195
1196 flags &= ~USE_GROUP;
1197 c = in_ch (s, &read_in);
1198 if (width > 0)
1199 --width;
1200 }
1201 }
1202
1203 while (1)
1204 {
1205 if (iswdigit (c))
1206 {
1207 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1208 wbuf[wbuf_cur_sz++] = c;
1209 }
1210 else if (!seen_exp && (flags & IS_HEX_FLOAT) != 0 && iswxdigit (c))
1211 {
1212 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1213 wbuf[wbuf_cur_sz++] = c;
1214 }
1215 else if (seen_exp && wbuf[wbuf_cur_sz - 1] == not_in
1216 && (c == '-' || c == '+'))
1217 {
1218 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1219 wbuf[wbuf_cur_sz++] = c;
1220 }
1221 else if (wbuf_cur_sz > 0 && !seen_exp
1222 && (wchar_t) towlower (c) == not_in)
1223 {
1224 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1225 wbuf[wbuf_cur_sz++] = not_in;
1226
1227 seen_exp = seen_dot = 1;
1228 }
1229 else
1230 {
1231 if (!seen_dot && c == lc_decimal_point)
1232 {
1233 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1234 wbuf[wbuf_cur_sz++] = c;
1235
1236 seen_dot = 1;
1237 }
1238 else if ((flags & USE_GROUP) != 0 && !seen_dot && c == lc_thousands_sep)
1239 {
1240 /* As our conversion routines aren't supporting thousands
1241 separators, we are filtering them here. */
1242 }
1243 else
1244 {
1245 back_ch (c, s, &read_in, 0);
1246 break;
1247 }
1248 }
1249
1250 if (width == 0 || (c = in_ch (s, &read_in)) == WEOF)
1251 break;
1252
1253 if (width > 0)
1254 --width;
1255 }
1256
1257 if (wbuf_cur_sz == 0 || ((flags & IS_HEX_FLOAT) != 0 && wbuf_cur_sz == 2))
1258 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1259 }
1260
1261 wbuf = resize_wbuf (wbuf_cur_sz, &wbuf_max_sz, wbuf);
1262 wbuf[wbuf_cur_sz++] = 0;
1263
1264 if ((flags & IS_LL) != 0)
1265 {
1266 long double d = __mingw_wcstold (wbuf, &tmp_wbuf_ptr/*, flags & USE_GROUP*/);
1267 if ((flags & IS_SUPPRESSED) == 0 && tmp_wbuf_ptr != wbuf)
1268 *(npos != 0 ? (long double *) get_va_nth (argp, npos) : va_arg (arg, long double *)) = is_neg ? -d : d;
1269 }
1270 else if ((flags & IS_L) != 0)
1271 {
1272 double d = __mingw_wcstod (wbuf, &tmp_wbuf_ptr/*, flags & USE_GROUP*/);
1273 if ((flags & IS_SUPPRESSED) == 0 && tmp_wbuf_ptr != wbuf)
1274 *(npos != 0 ? (double *) get_va_nth (argp, npos) : va_arg (arg, double *)) = is_neg ? -d : d;
1275 }
1276 else
1277 {
1278 float d = __mingw_wcstof (wbuf, &tmp_wbuf_ptr/*, flags & USE_GROUP*/);
1279 if ((flags & IS_SUPPRESSED) == 0 && tmp_wbuf_ptr != wbuf)
1280 *(npos != 0 ? (float *) get_va_nth (argp, npos) : va_arg (arg, float *)) = is_neg ? -d : d;
1281 }
1282
1283 if (wbuf == tmp_wbuf_ptr)
1284 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1285
1286 if ((flags & IS_SUPPRESSED) == 0)
1287 ++rval;
1288 break;
1289
1290 case '[':
1291 if ((flags & IS_L) != 0)
1292 {
1293 if ((flags & IS_SUPPRESSED) == 0)
1294 {
1295 if ((flags & IS_ALLOC_USED) != 0)
1296 {
1297 if (npos != 0)
1298 pstr = (char **) get_va_nth (argp, npos);
1299 else
1300 pstr = va_arg (arg, char **);
1301
1302 if (!pstr)
1303 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1304 str_sz = 100;
1305 *pstr = (char *) malloc (100 * sizeof (wchar_t));
1306 if ((wstr = (wchar_t *) *pstr) == NULL)
1307 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
1308
1309 gcollect = resize_gcollect (gcollect);
1310 gcollect->ptrs[gcollect->count++] = pstr;
1311 }
1312 else
1313 {
1314 if (npos != 0)
1315 wstr = (wchar_t *) get_va_nth (argp, npos);
1316 else
1317 wstr = va_arg (arg, wchar_t *);
1318 if (!wstr)
1319 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1320 }
1321 }
1322
1323 }
1324 else if ((flags & IS_SUPPRESSED) == 0)
1325 {
1326 if ((flags & IS_ALLOC_USED) != 0)
1327 {
1328 if (npos != 0)
1329 pstr = (char **) get_va_nth (argp, npos);
1330 else
1331 pstr = va_arg (arg, char **);
1332
1333 if (!pstr)
1334 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1335 str_sz = 100;
1336 if ((str = *pstr = (char *) malloc (100)) == NULL)
1337 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
1338 gcollect = resize_gcollect (gcollect);
1339 gcollect->ptrs[gcollect->count++] = pstr;
1340 }
1341 else
1342 {
1343 if (npos != 0)
1344 str = (char *) get_va_nth (argp, npos);
1345 else
1346 str = va_arg (arg, char *);
1347 if (!str)
1348 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1349 }
1350 }
1351
1352 not_in = (*f == '^' ? 1 : 0);
1353 if (*f == '^')
1354 f++;
1355
1356 if (width < 0)
1357 width = INT_MAX;
1358
1359 tmp_wbuf_ptr = (wchar_t *) f;
1360
1361 if (*f == L']')
1362 ++f;
1363
1364 while ((fc = *f++) != 0 && fc != L']');
1365
1366 if (fc == 0)
1367 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1368 temp_wbuf_end = (wchar_t *) f - 1;
1369
1370 if ((flags & IS_L) != 0)
1371 {
1372 read_in_sv = read_in;
1373
1374 if ((c = in_ch (s, &read_in)) == WEOF)
1375 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
1376
1377 do
1378 {
1379 int ended = 0;
1380 for (wbuf_iter = tmp_wbuf_ptr; wbuf_iter < temp_wbuf_end;)
1381 {
1382 if (wbuf_iter[0] == '-' && wbuf_iter[1] != 0
1383 && (wbuf_iter + 1) != temp_wbuf_end
1384 && wbuf_iter != tmp_wbuf_ptr
1385 && (unsigned int) wbuf_iter[-1] <= (unsigned int) wbuf_iter[1])
1386 {
1387 for (wc = wbuf_iter[-1] + 1; wc <= wbuf_iter[1] && (wint_t) wc != c; ++wc);
1388
1389 if (wc <= wbuf_iter[1] && !not_in)
1390 break;
1391 if (wc <= wbuf_iter[1] && not_in)
1392 {
1393 back_ch (c, s, &read_in, 0);
1394 ended = 1;
1395 break;
1396 }
1397
1398 wbuf_iter += 2;
1399 }
1400 else
1401 {
1402 if ((wint_t) *wbuf_iter == c && !not_in)
1403 break;
1404 if ((wint_t) *wbuf_iter == c && not_in)
1405 {
1406 back_ch (c, s, &read_in, 0);
1407 ended = 1;
1408 break;
1409 }
1410
1411 ++wbuf_iter;
1412 }
1413 }
1414 if (ended)
1415 break;
1416
1417 if (wbuf_iter == temp_wbuf_end && !not_in)
1418 {
1419 back_ch (c, s, &read_in, 0);
1420 break;
1421 }
1422
1423 if ((flags & IS_SUPPRESSED) == 0)
1424 {
1425 *wstr++ = c;
1426
1427 if ((flags & IS_ALLOC_USED) != 0
1428 && wstr == ((wchar_t *) *pstr + str_sz))
1429 {
1430 new_sz = str_sz * 2;
1431 while ((wstr = (wchar_t *) realloc (*pstr,
1432 new_sz * sizeof (wchar_t))) == NULL
1433 && new_sz > (size_t) (str_sz + 1))
1434 new_sz = str_sz + 1;
1435 if (!wstr)
1436 {
1437 if ((flags & USE_POSIX_ALLOC) == 0)
1438 {
1439 ((wchar_t *) (*pstr))[str_sz - 1] = 0;
1440 pstr = NULL;
1441 ++rval;
1442 }
1443 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
1444 }
1445 *pstr = (char *) wstr;
1446 wstr += str_sz;
1447 str_sz = new_sz;
1448 }
1449 }
1450 }
1451 while (--width > 0 && (c = in_ch (s, &read_in)) != WEOF);
1452
1453 if (read_in_sv == read_in)
1454 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1455
1456 if ((flags & IS_SUPPRESSED) == 0)
1457 {
1458 *wstr++ = 0;
1459
1460 optimize_alloc (pstr, (char *) wstr, str_sz * sizeof (wchar_t));
1461 pstr = NULL;
1462 ++rval;
1463 }
1464 }
1465 else
1466 {
1467 read_in_sv = read_in;
1468
1469 if ((c = in_ch (s, &read_in)) == WEOF)
1470 return cleanup_return ((!rval ? EOF : rval), &gcollect, pstr, &wbuf);
1471
1472 memset (&state, 0, sizeof (state));
1473
1474 do
1475 {
1476 int ended = 0;
1477 wbuf_iter = tmp_wbuf_ptr;
1478 while (wbuf_iter < temp_wbuf_end)
1479 {
1480 if (wbuf_iter[0] == '-' && wbuf_iter[1] != 0
1481 && (wbuf_iter + 1) != temp_wbuf_end
1482 && wbuf_iter != tmp_wbuf_ptr
1483 && (unsigned int) wbuf_iter[-1] <= (unsigned int) wbuf_iter[1])
1484 {
1485 for (wc = wbuf_iter[-1] + 1; wc <= wbuf_iter[1] && (wint_t) wc != c; ++wc);
1486
1487 if (wc <= wbuf_iter[1] && !not_in)
1488 break;
1489 if (wc <= wbuf_iter[1] && not_in)
1490 {
1491 back_ch (c, s, &read_in, 0);
1492 ended = 1;
1493 break;
1494 }
1495
1496 wbuf_iter += 2;
1497 }
1498 else
1499 {
1500 if ((wint_t) *wbuf_iter == c && !not_in)
1501 break;
1502 if ((wint_t) *wbuf_iter == c && not_in)
1503 {
1504 back_ch (c, s, &read_in, 0);
1505 ended = 1;
1506 break;
1507 }
1508
1509 ++wbuf_iter;
1510 }
1511 }
1512
1513 if (ended)
1514 break;
1515 if (wbuf_iter == temp_wbuf_end && !not_in)
1516 {
1517 back_ch (c, s, &read_in, 0);
1518 break;
1519 }
1520
1521 if ((flags & IS_SUPPRESSED) == 0)
1522 {
1523 if ((flags & IS_ALLOC_USED) != 0
1524 && (str + MB_CUR_MAX) >= (*pstr + str_sz))
1525 {
1526 new_sz = str_sz * 2;
1527 str_len = (str - *pstr);
1528
1529 while ((nstr = (char *) realloc (*pstr, new_sz)) == NULL
1530 && new_sz > (str_len + MB_CUR_MAX))
1531 new_sz = str_len + MB_CUR_MAX;
1532 if (!nstr)
1533 {
1534 if ((flags & USE_POSIX_ALLOC) == 0)
1535 {
1536 ((*pstr))[str_len] = 0;
1537 pstr = NULL;
1538 ++rval;
1539 }
1540 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
1541 }
1542 *pstr = nstr;
1543 str = nstr + str_len;
1544 str_sz = new_sz;
1545 }
1546 }
1547
1548 n = wcrtomb ((flags & IS_SUPPRESSED) == 0 ? str : NULL, c, &state);
1549 if (n == (size_t) -1LL)
1550 {
1551 errno = EILSEQ;
1552 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1553 }
1554
1555 str += n;
1556 }
1557 while (--width > 0 && (c = in_ch (s, &read_in)) != WEOF);
1558
1559 if (read_in_sv == read_in)
1560 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1561
1562 if ((flags & IS_SUPPRESSED) == 0)
1563 {
1564 n = wcrtomb (buf, 0, &state);
1565 if (n > 0 && (flags & IS_ALLOC_USED) != 0
1566 && (str + n) >= (*pstr + str_sz))
1567 {
1568 str_len = (str - *pstr);
1569
1570 if ((nstr = (char *) realloc (*pstr, str_len + n + 1)) == NULL)
1571 {
1572 if ((flags & USE_POSIX_ALLOC) == 0)
1573 {
1574 (*pstr)[str_len] = 0;
1575 pstr = NULL;
1576 ++rval;
1577 }
1578 return cleanup_return (((flags & USE_POSIX_ALLOC) != 0 ? EOF : rval), &gcollect, pstr, &wbuf);
1579 }
1580 *pstr = nstr;
1581 str = nstr + str_len;
1582 str_sz = str_len + n + 1;
1583 }
1584
1585 if (n)
1586 {
1587 memcpy (str, buf, n);
1588 str += n;
1589 }
1590 *str++ = 0;
1591
1592 optimize_alloc (pstr, str, str_sz);
1593 pstr = NULL;
1594 ++rval;
1595 }
1596 }
1597 break;
1598
1599 default:
1600 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1601 }
1602 }
1603
1604 if (ignore_ws)
1605 {
1606 while (iswspace ((c = in_ch (s, &read_in))));
1607 back_ch (c, s, &read_in, 0);
1608 }
1609
1610 return cleanup_return (rval, &gcollect, pstr, &wbuf);
1611}
1612
1613int
1614__mingw_vfwscanf (FILE *s, const wchar_t *format, va_list argp)
1615{
1616 _IFP ifp;
1617 memset (&ifp, 0, sizeof (_IFP));
1618 ifp.fp = s;
1619 return __mingw_swformat (&ifp, format, argp);
1620}
1621
1622int
1623__mingw_vswscanf (const wchar_t *s, const wchar_t *format, va_list argp)
1624{
1625 _IFP ifp;
1626 memset (&ifp, 0, sizeof (_IFP));
1627 ifp.str = s;
1628 ifp.is_string = 1;
1629 return __mingw_swformat (&ifp, format, argp);
1630}
1631
lib/libc/mingw/stdio/scanf.S deleted-243
...@@ -1,243 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7/* vsscanf, vswscanf, vfscanf, and vfwscanf all come here for i386 and arm.
8
9 The goal of this routine is to turn a call to v*scanf into a call to
10 s*scanf. This is needed because mingw-w64 uses msvcr100.dll, which doesn't
11 support the v*scanf functions instead of msvcr120.dll which does.
12*/
13
14/* The function prototype here is (essentially):
15
16 int __ms_v*scanf_internal (void *s,
17 void *format,
18 void *arg,
19 size_t count,
20 void *func);
21
22 I say 'essentially' because passing a function pointer as void in ISO
23 is not supported. But in the end, I take the first parameter (which
24 may be a char *, a wchar_t *, or a FILE *) and put it into the newly
25 formed stack, and eventually call the address in func. */
26
27#if defined (__x86_64__)
28
29 .text
30 .align 16
31
32 /* scl 2: C_EXT - External (public) symbol - covers globals and externs
33 type 32: DT_FCN - function returning T
34 */
35 .def __argtos; .scl 2; .type 32; .endef
36
37 .seh_proc __argtos
38__argtos:
39
40 /* When we are done:
41 - s must be in rcx. That's where it is on entry.
42 - format must be in rdx. That's where it is on entry.
43 - The first pointer in arg must be in r8. arg is in r8 on entry.
44 - The second pointer in arg must be in r9. arg is in r8 on entry.
45 - The (count - 2) other pointers in arg must be on the stack,
46 starting 32bytes into rsp. */
47
48 pushq %rbp
49 .seh_pushreg %rbp
50 movq %rsp, %rbp
51 .seh_setframe %rbp, 0
52
53 /* We need to always reserve space to shadow 4 parameters. */
54 subq $32, %rsp
55 .seh_stackalloc 32
56 .seh_endprologue
57
58 movq 48(%rbp), %r10 /* func. */
59
60 /* We need enough room to shadow all the other args.
61 Except the first 2, since they will be loaded in registers. */
62 cmpq $2, %r9 /* count. */
63 jbe .SKIP
64 subq $2, %r9 /* # of ptrs to copy. */
65 /* Calculate stack size (arg is 8byte) and keep the stack 16byte aligned. */
66 leaq 8(, %r9, 8), %rax /* %rax = (%r9 + 1) * 8 */
67 andq $-16, %rax
68 subq %rax, %rsp
69
70 /* We are going to copy parameters from arg to our local stack.
71 The first 32 bytes are in registers, but by spec, space
72 must still be reserved for them on the stack. Put the
73 rest of the pointers in the stack after that. */
74 lea 32(%rsp), %r11 /* dst. */
75
76.LOOP:
77 subq $1, %r9
78
79 /* Use 16 to skip over the first 2 pointers. */
80 movq 16(%r8, %r9, 8), %rax
81 movq %rax, (%r11, %r9, 8)
82 jnz .LOOP
83
84.SKIP:
85 /* The stack is now correctly populated, and so are rcx and rdx.
86 But we need to load the last 2 regs before making the call. */
87 movq 0x8(%r8), %r9 /* 2nd dest location (may be garbage if only 1 arg). */
88 movq (%r8), %r8 /* 1st dest location (may be garbage if no arg). */
89
90 /* Make the call. */
91 callq *%r10
92
93 /* Restore stack. */
94 movq %rbp, %rsp
95
96 popq %rbp
97 retq
98 .seh_endproc
99
100#elif defined (_X86_)
101
102 .text
103 .align 16
104
105 /* scl 2: C_EXT - External (public) symbol - covers globals and externs
106 type 32: DT_FCN - function returning T
107 */
108 .def __argtos; .scl 2; .type 32; .endef
109
110__argtos:
111 pushl %ebp
112 movl %esp, %ebp
113 pushl %edi
114 pushl %ebx
115
116 /* Reserve enough stack space for everything.
117
118 Stack usage will look like:
119 4 bytes - s
120 4 bytes - format
121 4*count bytes - variable # of parameters for sscanf (all ptrs). */
122
123 movl 20(%ebp), %ebx /* count. */
124 addl $2, %ebx /* s + format. */
125 sall $2, %ebx /* (count + 2) * 4. */
126 subl %ebx, %esp
127
128 /* Write out s and format where they need to be for the sscanf call. */
129 movl 8(%ebp), %eax
130 movl %eax, (%esp) /* s. */
131 movl 12(%ebp), %edx
132 movl %edx, 0x4(%esp) /* format. */
133
134 /* We are going to copy _count_ pointers from arg to our
135 local stack. */
136 movl 20(%ebp), %ecx /* # of ptrs to copy. */
137 testl %ecx, %ecx
138 jz .SKIP
139 lea 8(%esp), %edi /* dst. */
140 movl 16(%ebp), %edx /* src. */
141
142.LOOP:
143 subl $1, %ecx
144
145 movl (%edx, %ecx, 4), %eax
146 movl %eax, (%edi, %ecx, 4)
147 jnz .LOOP
148
149.SKIP:
150 /* The stack is now correctly populated. */
151
152 /* Make the call. */
153 call *24(%ebp)
154
155 /* Restore stack. */
156 addl %ebx, %esp
157
158 popl %ebx
159 popl %edi
160 leave
161
162 ret
163
164#elif defined (__arm__)
165
166 .text
167 .align 2
168 .thumb_func
169 .globl __argtos
170
171__argtos:
172 push {r4-r8, lr}
173 ldr r12, [sp, #24]
174
175 ldr r5, [r2], #4
176 ldr r6, [r2], #4
177
178 subs r3, r3, #2
179 mov r8, #0
180 ble 2f
181
182 /* Round the number of entries to an even number, to maintain
183 * 8 byte stack alignment. */
184 mov r8, r3
185 add r8, r8, #1
186 bic r8, r8, #1
187 sub sp, sp, r8, lsl #2
188 mov r4, sp
1891: ldr r7, [r2], #4
190 subs r3, r3, #1
191 str r7, [r4], #4
192 bne 1b
193
1942:
195 mov r2, r5
196 mov r3, r6
197 blx r12
198
199 add sp, sp, r8, lsl #2
200 pop {r4-r8, pc}
201
202#elif defined (__aarch64__)
203
204 .text
205 .align 2
206 .globl __argtos
207
208__argtos:
209 stp x29, x30, [sp, #-16]!
210 mov x29, sp
211 mov x10, x2
212 mov x11, x3
213 mov x12, x4
214
215 ldr x2, [x10], #8
216 ldr x3, [x10], #8
217 ldr x4, [x10], #8
218 ldr x5, [x10], #8
219 ldr x6, [x10], #8
220 ldr x7, [x10], #8
221
222 subs x11, x11, #6
223 b.le 2f
224
225 /* Round the number of entries to an even number, to maintain
226 * 16 byte stack alignment. */
227 mov x13, x11
228 add x13, x13, #1
229 bic x13, x13, #1
230 sub sp, sp, x13, lsl #3
231 mov x9, sp
2321: ldr x13, [x10], #8
233 subs x11, x11, #1
234 str x13, [x9], #8
235 b.ne 1b
236
2372:
238 blr x12
239 mov sp, x29
240 ldp x29, x30, [sp], #16
241 ret
242
243#endif
lib/libc/mingw/stdio/scanf2-argcount-char.c deleted-9
...@@ -1,9 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#define FUNC __ms_scanf_max_arg_count_internal
8#define TYPE char
9#include "scanf2-argcount-template.c"
lib/libc/mingw/stdio/scanf2-argcount-template.c deleted-18
...@@ -1,18 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <stddef.h>
8
9size_t FUNC(const TYPE *format);
10size_t FUNC(const TYPE *format)
11{
12 size_t count = 0;
13 for (; *format; format++) {
14 if (*format == (TYPE)'%')
15 count++;
16 }
17 return count;
18}
lib/libc/mingw/stdio/scanf2-argcount-wchar.c deleted-9
...@@ -1,9 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#define FUNC __ms_wscanf_max_arg_count_internal
8#define TYPE wchar_t
9#include "scanf2-argcount-template.c"
lib/libc/mingw/stdio/scanf2-template.S deleted-32
...@@ -1,32 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#if defined(_ARM_) || defined(__arm__)
8 .thumb
9#endif
10 .text
11 .p2align 4,,15
12 .globl FCT
13 .def FCT; .scl 2; .type 32; .endef
14#ifdef __x86_64__
15 .seh_proc FCT
16#endif
17FCT:
18#ifdef __x86_64__
19 .seh_endprologue
20#endif
21#if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__)
22 jmp FWD
23#elif defined(_ARM_) || defined(__arm__)
24 .thumb_func
25 b FWD
26#elif defined(_ARM64_) || defined(__aarch64__)
27 b FWD
28#endif
29#ifdef __x86_64__
30 .seh_endproc
31#endif
32 .def FWD; .scl 2; .type 32; .endef
lib/libc/mingw/stdio/snwprintf.c+1-1
...@@ -12,7 +12,7 @@ int __cdecl __ms_snwprintf(wchar_t *buffer, size_t n, const wchar_t *format, ......@@ -12,7 +12,7 @@ int __cdecl __ms_snwprintf(wchar_t *buffer, size_t n, const wchar_t *format, ...
12 va_list argptr;12 va_list argptr;
13 13
14 va_start(argptr, format);14 va_start(argptr, format);
15 retval = _vsnwprintf(buffer, n, format, argptr);15 retval = __ms_vsnwprintf(buffer, n, format, argptr);
16 va_end(argptr);16 va_end(argptr);
17 return retval;17 return retval;
18}18}
lib/libc/mingw/stdio/ucrt_ms_fprintf.c created+22
...@@ -0,0 +1,22 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#undef __MSVCRT_VERSION__
8#define _UCRT
9
10#include <stdio.h>
11#include <stdarg.h>
12
13int __cdecl __ms_fprintf(FILE * restrict file, const char * restrict format, ...)
14{
15 va_list ap;
16 int ret;
17 va_start(ap, format);
18 ret = __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, file, format, NULL, ap);
19 va_end(ap);
20 return ret;
21}
22int __cdecl (*__MINGW_IMP_SYMBOL(__ms_fprintf))(FILE * restrict, const char * restrict, ...) = __ms_fprintf;
lib/libc/mingw/stdio/vfscanf.c deleted-35
...@@ -1,35 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <stdio.h>
8#include <stdarg.h>
9
10extern int __ms_vfscanf_internal (
11 FILE * s,
12 const char * format,
13 va_list arg,
14 size_t count,
15 int (*func)(FILE * __restrict__, const char * __restrict__, ...))
16 asm("__argtos");
17
18extern size_t __ms_scanf_max_arg_count_internal (const char * format);
19
20int __ms_vfscanf (FILE * __restrict__ stream, const char * __restrict__ format, va_list arg)
21{
22 size_t count = __ms_scanf_max_arg_count_internal (format);
23 int ret;
24
25#if defined(_AMD64_) || defined(__x86_64__) || \
26 defined(_X86_) || defined(__i386__) || \
27 defined(_ARM_) || defined(__arm__) || \
28 defined(_ARM64_) || defined(__aarch64__)
29 ret = __ms_vfscanf_internal (stream, format, arg, count, fscanf);
30#else
31#error "unknown platform"
32#endif
33
34 return ret;
35}
lib/libc/mingw/stdio/vfscanf2.S deleted-12
...@@ -1,12 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#include <_mingw_mac.h>
7
8#define FCT __MINGW_USYMBOL(vfscanf)
9#define FWD __MINGW_USYMBOL(__ms_vfscanf)
10
11 .file "vfscanf2.S"
12#include "scanf2-template.S"
lib/libc/mingw/stdio/vfwscanf.c deleted-36
...@@ -1,36 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <stdarg.h>
8#include <wchar.h>
9
10extern int __ms_vfwscanf_internal (
11 FILE * s,
12 const wchar_t * format,
13 va_list arg,
14 size_t count,
15 int (*func)(FILE * __restrict__, const wchar_t * __restrict__, ...))
16 asm("__argtos");
17
18extern size_t __ms_wscanf_max_arg_count_internal (const wchar_t * format);
19
20int __ms_vfwscanf (FILE * __restrict__ stream,
21 const wchar_t * __restrict__ format, va_list arg)
22{
23 size_t count = __ms_wscanf_max_arg_count_internal (format);
24 int ret;
25
26#if defined(_AMD64_) || defined(__x86_64__) || \
27 defined(_X86_) || defined(__i386__) || \
28 defined(_ARM_) || defined(__arm__) || \
29 defined (_ARM64_) || defined (__aarch64__)
30 ret = __ms_vfwscanf_internal (stream, format, arg, count, fwscanf);
31#else
32#error "unknown platform"
33#endif
34
35 return ret;
36}
lib/libc/mingw/stdio/vfwscanf2.S deleted-12
...@@ -1,12 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#include <_mingw_mac.h>
7
8#define FCT __MINGW_USYMBOL(vfwscanf)
9#define FWD __MINGW_USYMBOL(__ms_vfwscanf)
10
11 .file "vfwscanf2.S"
12#include "scanf2-template.S"
lib/libc/mingw/stdio/vscanf.c deleted-15
...@@ -1,15 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6// By aaronwl 2003-01-28 for mingw-msvcrt
7// Public domain: all copyrights disclaimed, absolutely no warranties
8
9#include <stdarg.h>
10#include <stdio.h>
11
12int __ms_vscanf(const char * __restrict__ format, va_list arg)
13{
14 return __ms_vfscanf(stdin, format, arg);
15}
lib/libc/mingw/stdio/vscanf2.S deleted-12
...@@ -1,12 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#include <_mingw_mac.h>
7
8#define FCT __MINGW_USYMBOL(vscanf)
9#define FWD __MINGW_USYMBOL(__ms_vscanf)
10
11 .file "vscanf2.S"
12#include "scanf2-template.S"
lib/libc/mingw/stdio/vsnwprintf.c+19-1
...@@ -12,5 +12,23 @@ int __cdecl __ms_vsnwprintf(wchar_t *buffer, size_t n, const wchar_t * format,...@@ -12,5 +12,23 @@ int __cdecl __ms_vsnwprintf(wchar_t *buffer, size_t n, const wchar_t * format,
1212
13int __cdecl __ms_vsnwprintf(wchar_t *buffer, size_t n, const wchar_t * format, va_list argptr)13int __cdecl __ms_vsnwprintf(wchar_t *buffer, size_t n, const wchar_t * format, va_list argptr)
14{14{
15 return _vsnwprintf(buffer, n, format, argptr);15 int retval;
16
17 /* _vsnwprintf() does not work with zero length buffer
18 * so count number of characters by _vscwprintf() call */
19 if (n == 0)
20 return _vscwprintf(format, argptr);
21
22 retval = _vsnwprintf(buffer, n, format, argptr);
23
24 /* _vsnwprintf() does not fill trailing null character if there is not place for it */
25 if (retval < 0 || (size_t)retval == n)
26 buffer[n-1] = '\0';
27
28 /* _vsnwprintf() returns negative number if buffer is too small
29 * so count number of characters by _vscwprintf() call */
30 if (retval < 0)
31 retval = _vscwprintf(format, argptr);
32
33 return retval;
16}34}
lib/libc/mingw/stdio/vsscanf.c deleted-36
...@@ -1,36 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <stdarg.h>
8#include <stdio.h>
9
10extern int __ms_vsscanf_internal (
11 const char * s,
12 const char * format,
13 va_list arg,
14 size_t count,
15 int (*func)(const char * __restrict__, const char * __restrict__, ...))
16 asm("__argtos");
17
18extern size_t __ms_scanf_max_arg_count_internal (const char * format);
19
20int __ms_vsscanf (const char * __restrict__ s,
21 const char * __restrict__ format, va_list arg)
22{
23 size_t count = __ms_scanf_max_arg_count_internal (format);
24 int ret;
25
26#if defined(_AMD64_) || defined(__x86_64__) || \
27 defined(_X86_) || defined(__i386__) || \
28 defined(_ARM_) || defined(__arm__) || \
29 defined(_ARM64_) || defined(__aarch64__)
30 ret = __ms_vsscanf_internal (s, format, arg, count, sscanf);
31#else
32#error "unknown platform"
33#endif
34
35 return ret;
36}
lib/libc/mingw/stdio/vsscanf2.S deleted-12
...@@ -1,12 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#include <_mingw_mac.h>
7
8#define FCT __MINGW_USYMBOL(vsscanf)
9#define FWD __MINGW_USYMBOL(__ms_vsscanf)
10
11 .file "vsscanf2.S"
12#include "scanf2-template.S"
lib/libc/mingw/stdio/vswscanf.c deleted-36
...@@ -1,36 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <stdarg.h>
8#include <wchar.h>
9
10extern int __ms_vswscanf_internal (
11 const wchar_t * s,
12 const wchar_t * format,
13 va_list arg,
14 size_t count,
15 int (*func)(const wchar_t * __restrict__, const wchar_t * __restrict__, ...))
16 asm("__argtos");
17
18extern size_t __ms_wscanf_max_arg_count_internal (const wchar_t * format);
19
20int __ms_vswscanf(const wchar_t * __restrict__ s, const wchar_t * __restrict__ format,
21 va_list arg)
22{
23 size_t count = __ms_wscanf_max_arg_count_internal (format);
24 int ret;
25
26#if defined(_AMD64_) || defined(__x86_64__) || \
27 defined(_X86_) || defined(__i386__) || \
28 defined(_ARM_) || defined(__arm__) || \
29 defined(_ARM64_) || defined(__aarch64__)
30 ret = __ms_vswscanf_internal (s, format, arg, count, swscanf);
31#else
32#error "unknown platform"
33#endif
34
35 return ret;
36}
lib/libc/mingw/stdio/vswscanf2.S deleted-12
...@@ -1,12 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#include <_mingw_mac.h>
7
8#define FCT __MINGW_USYMBOL(vswscanf)
9#define FWD __MINGW_USYMBOL(__ms_vswscanf)
10
11 .file "vswscanf2.S"
12#include "scanf2-template.S"
lib/libc/mingw/stdio/vwscanf.c deleted-16
...@@ -1,16 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6// By aaronwl 2003-01-28 for mingw-msvcrt.
7// Public domain: all copyrights disclaimed, absolutely no warranties.
8
9#include <stdarg.h>
10#include <wchar.h>
11#include <stdio.h>
12
13int __ms_vwscanf (const wchar_t * __restrict__ format, va_list arg)
14{
15 return __ms_vfwscanf(stdin, format, arg);
16}
lib/libc/mingw/stdio/vwscanf2.S deleted-12
...@@ -1,12 +0,0 @@
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#include <_mingw_mac.h>
7
8#define FCT __MINGW_USYMBOL(vwscanf)
9#define FWD __MINGW_USYMBOL(__ms_vwscanf)
10
11 .file "vwscanf2.S"
12#include "scanf2-template.S"
lib/libc/mingw/winpthreads/thread.c+3-2
...@@ -970,7 +970,8 @@ void...@@ -970,7 +970,8 @@ void
970_pthread_cleanup_dest (pthread_t t)970_pthread_cleanup_dest (pthread_t t)
971{971{
972 _pthread_v *tv;972 _pthread_v *tv;
973 unsigned int i, j;973 unsigned int j;
974 int i;
974975
975 if (!t)976 if (!t)
976 return;977 return;
...@@ -983,7 +984,7 @@ _pthread_cleanup_dest (pthread_t t)...@@ -983,7 +984,7 @@ _pthread_cleanup_dest (pthread_t t)
983 int flag = 0;984 int flag = 0;
984985
985 pthread_spin_lock (&tv->spin_keys);986 pthread_spin_lock (&tv->spin_keys);
986 for (i = 0; i < tv->keymax; i++)987 for (i = tv->keymax - 1; i >= 0; i--)
987 {988 {
988 void *val = tv->keyval[i];989 void *val = tv->keyval[i];
989990
lib/libc/mingw/winpthreads/thread.h+1-1
...@@ -74,6 +74,6 @@ void thread_print_set(int state);...@@ -74,6 +74,6 @@ void thread_print_set(int state);
74void thread_print(volatile pthread_t t, char *txt);74void thread_print(volatile pthread_t t, char *txt);
75#endif75#endif
76int __pthread_shallcancel(void);76int __pthread_shallcancel(void);
77struct _pthread_v *WINPTHREAD_API __pth_gpointer_locked (pthread_t id);77WINPTHREAD_API struct _pthread_v * __pth_gpointer_locked (pthread_t id);
7878
79#endif79#endif
lib/std/zig/target.zig+2
...@@ -242,6 +242,8 @@ pub fn isLibCLibName(target: std.Target, name: []const u8) bool {...@@ -242,6 +242,8 @@ pub fn isLibCLibName(target: std.Target, name: []const u8) bool {
242 return true;242 return true;
243 if (eqlIgnoreCase(ignore_case, name, "wbemuuid"))243 if (eqlIgnoreCase(ignore_case, name, "wbemuuid"))
244 return true;244 return true;
245 if (eqlIgnoreCase(ignore_case, name, "wiaguid"))
246 return true;
245 if (eqlIgnoreCase(ignore_case, name, "winpthread"))247 if (eqlIgnoreCase(ignore_case, name, "winpthread"))
246 return true;248 return true;
247 if (eqlIgnoreCase(ignore_case, name, "wmcodecdspuuid"))249 if (eqlIgnoreCase(ignore_case, name, "wmcodecdspuuid"))
src/mingw.zig+17-30
...@@ -497,7 +497,7 @@ const mingw32_generic_src = [_][]const u8{...@@ -497,7 +497,7 @@ const mingw32_generic_src = [_][]const u8{
497 "crt" ++ path.sep_str ++ "cxa_atexit.c",497 "crt" ++ path.sep_str ++ "cxa_atexit.c",
498 "crt" ++ path.sep_str ++ "cxa_thread_atexit.c",498 "crt" ++ path.sep_str ++ "cxa_thread_atexit.c",
499 "crt" ++ path.sep_str ++ "tls_atexit.c",499 "crt" ++ path.sep_str ++ "tls_atexit.c",
500 "crt" ++ path.sep_str ++ "intrincs" ++ path.sep_str ++ "RtlSecureZeroMemory.c",500 "intrincs" ++ path.sep_str ++ "RtlSecureZeroMemory.c",
501 // mingwex501 // mingwex
502 "cfguard" ++ path.sep_str ++ "mingw_cfguard_support.c",502 "cfguard" ++ path.sep_str ++ "mingw_cfguard_support.c",
503 "complex" ++ path.sep_str ++ "_cabs.c",503 "complex" ++ path.sep_str ++ "_cabs.c",
...@@ -630,8 +630,6 @@ const mingw32_generic_src = [_][]const u8{...@@ -630,8 +630,6 @@ const mingw32_generic_src = [_][]const u8{
630 "misc" ++ path.sep_str ++ "getlogin.c",630 "misc" ++ path.sep_str ++ "getlogin.c",
631 "misc" ++ path.sep_str ++ "getopt.c",631 "misc" ++ path.sep_str ++ "getopt.c",
632 "misc" ++ path.sep_str ++ "gettimeofday.c",632 "misc" ++ path.sep_str ++ "gettimeofday.c",
633 "misc" ++ path.sep_str ++ "isblank.c",
634 "misc" ++ path.sep_str ++ "iswblank.c",
635 "misc" ++ path.sep_str ++ "mempcpy.c",633 "misc" ++ path.sep_str ++ "mempcpy.c",
636 "misc" ++ path.sep_str ++ "mingw-access.c",634 "misc" ++ path.sep_str ++ "mingw-access.c",
637 "misc" ++ path.sep_str ++ "mingw-aligned-malloc.c",635 "misc" ++ path.sep_str ++ "mingw-aligned-malloc.c",
...@@ -658,8 +656,6 @@ const mingw32_generic_src = [_][]const u8{...@@ -658,8 +656,6 @@ const mingw32_generic_src = [_][]const u8{
658 "misc" ++ path.sep_str ++ "wcstold.c",656 "misc" ++ path.sep_str ++ "wcstold.c",
659 "misc" ++ path.sep_str ++ "wcstoumax.c",657 "misc" ++ path.sep_str ++ "wcstoumax.c",
660 "misc" ++ path.sep_str ++ "wctob.c",658 "misc" ++ path.sep_str ++ "wctob.c",
661 "misc" ++ path.sep_str ++ "wctrans.c",
662 "misc" ++ path.sep_str ++ "wctype.c",
663 "misc" ++ path.sep_str ++ "wdirent.c",659 "misc" ++ path.sep_str ++ "wdirent.c",
664 "misc" ++ path.sep_str ++ "winbs_uint64.c",660 "misc" ++ path.sep_str ++ "winbs_uint64.c",
665 "misc" ++ path.sep_str ++ "winbs_ulong.c",661 "misc" ++ path.sep_str ++ "winbs_ulong.c",
...@@ -692,35 +688,36 @@ const mingw32_generic_src = [_][]const u8{...@@ -692,35 +688,36 @@ const mingw32_generic_src = [_][]const u8{
692 "stdio" ++ path.sep_str ++ "lseek64.c",688 "stdio" ++ path.sep_str ++ "lseek64.c",
693 "stdio" ++ path.sep_str ++ "mingw_asprintf.c",689 "stdio" ++ path.sep_str ++ "mingw_asprintf.c",
694 "stdio" ++ path.sep_str ++ "mingw_fprintf.c",690 "stdio" ++ path.sep_str ++ "mingw_fprintf.c",
695 "stdio" ++ path.sep_str ++ "mingw_fprintfw.c",691 "stdio" ++ path.sep_str ++ "mingw_fwprintf.c",
696 "stdio" ++ path.sep_str ++ "mingw_fscanf.c",692 "stdio" ++ path.sep_str ++ "mingw_fscanf.c",
697 "stdio" ++ path.sep_str ++ "mingw_fwscanf.c",693 "stdio" ++ path.sep_str ++ "mingw_fwscanf.c",
698 "stdio" ++ path.sep_str ++ "mingw_pformat.c",694 "stdio" ++ path.sep_str ++ "mingw_pformat.c",
699 "stdio" ++ path.sep_str ++ "mingw_pformatw.c",695 "stdio" ++ path.sep_str ++ "mingw_sformat.c",
696 "stdio" ++ path.sep_str ++ "mingw_swformat.c",
697 "stdio" ++ path.sep_str ++ "mingw_wpformat.c",
700 "stdio" ++ path.sep_str ++ "mingw_printf.c",698 "stdio" ++ path.sep_str ++ "mingw_printf.c",
701 "stdio" ++ path.sep_str ++ "mingw_printfw.c",699 "stdio" ++ path.sep_str ++ "mingw_wprintf.c",
702 "stdio" ++ path.sep_str ++ "mingw_scanf.c",700 "stdio" ++ path.sep_str ++ "mingw_scanf.c",
703 "stdio" ++ path.sep_str ++ "mingw_snprintf.c",701 "stdio" ++ path.sep_str ++ "mingw_snprintf.c",
704 "stdio" ++ path.sep_str ++ "mingw_snprintfw.c",702 "stdio" ++ path.sep_str ++ "mingw_snwprintf.c",
705 "stdio" ++ path.sep_str ++ "mingw_sprintf.c",703 "stdio" ++ path.sep_str ++ "mingw_sprintf.c",
706 "stdio" ++ path.sep_str ++ "mingw_sprintfw.c",704 "stdio" ++ path.sep_str ++ "mingw_swprintf.c",
707 "stdio" ++ path.sep_str ++ "mingw_sscanf.c",705 "stdio" ++ path.sep_str ++ "mingw_sscanf.c",
708 "stdio" ++ path.sep_str ++ "mingw_swscanf.c",706 "stdio" ++ path.sep_str ++ "mingw_swscanf.c",
709 "stdio" ++ path.sep_str ++ "mingw_vasprintf.c",707 "stdio" ++ path.sep_str ++ "mingw_vasprintf.c",
710 "stdio" ++ path.sep_str ++ "mingw_vfprintf.c",708 "stdio" ++ path.sep_str ++ "mingw_vfprintf.c",
711 "stdio" ++ path.sep_str ++ "mingw_vfprintfw.c",709 "stdio" ++ path.sep_str ++ "mingw_vfwprintf.c",
712 "stdio" ++ path.sep_str ++ "mingw_vfscanf.c",710 "stdio" ++ path.sep_str ++ "mingw_vfscanf.c",
713 "stdio" ++ path.sep_str ++ "mingw_vprintf.c",711 "stdio" ++ path.sep_str ++ "mingw_vprintf.c",
714 "stdio" ++ path.sep_str ++ "mingw_vprintfw.c",712 "stdio" ++ path.sep_str ++ "mingw_vsscanf.c",
713 "stdio" ++ path.sep_str ++ "mingw_vwprintf.c",
715 "stdio" ++ path.sep_str ++ "mingw_vsnprintf.c",714 "stdio" ++ path.sep_str ++ "mingw_vsnprintf.c",
716 "stdio" ++ path.sep_str ++ "mingw_vsnprintfw.c",715 "stdio" ++ path.sep_str ++ "mingw_vsnwprintf.c",
717 "stdio" ++ path.sep_str ++ "mingw_vsprintf.c",716 "stdio" ++ path.sep_str ++ "mingw_vsprintf.c",
718 "stdio" ++ path.sep_str ++ "mingw_vsprintfw.c",717 "stdio" ++ path.sep_str ++ "mingw_vswprintf.c",
719 "stdio" ++ path.sep_str ++ "mingw_wscanf.c",718 "stdio" ++ path.sep_str ++ "mingw_wscanf.c",
720 "stdio" ++ path.sep_str ++ "mingw_wvfscanf.c",719 "stdio" ++ path.sep_str ++ "mingw_vfwscanf.c",
721 "stdio" ++ path.sep_str ++ "scanf2-argcount-char.c",720 "stdio" ++ path.sep_str ++ "mingw_vswscanf.c",
722 "stdio" ++ path.sep_str ++ "scanf2-argcount-wchar.c",
723 "stdio" ++ path.sep_str ++ "scanf.S",
724 "stdio" ++ path.sep_str ++ "snprintf.c",721 "stdio" ++ path.sep_str ++ "snprintf.c",
725 "stdio" ++ path.sep_str ++ "snwprintf.c",722 "stdio" ++ path.sep_str ++ "snwprintf.c",
726 "stdio" ++ path.sep_str ++ "strtok_r.c",723 "stdio" ++ path.sep_str ++ "strtok_r.c",
...@@ -728,20 +725,8 @@ const mingw32_generic_src = [_][]const u8{...@@ -728,20 +725,8 @@ const mingw32_generic_src = [_][]const u8{
728 "stdio" ++ path.sep_str ++ "ulltoa.c",725 "stdio" ++ path.sep_str ++ "ulltoa.c",
729 "stdio" ++ path.sep_str ++ "ulltow.c",726 "stdio" ++ path.sep_str ++ "ulltow.c",
730 "stdio" ++ path.sep_str ++ "vasprintf.c",727 "stdio" ++ path.sep_str ++ "vasprintf.c",
731 "stdio" ++ path.sep_str ++ "vfscanf.c",
732 "stdio" ++ path.sep_str ++ "vfscanf2.S",
733 "stdio" ++ path.sep_str ++ "vfwscanf.c",
734 "stdio" ++ path.sep_str ++ "vfwscanf2.S",
735 "stdio" ++ path.sep_str ++ "vscanf.c",
736 "stdio" ++ path.sep_str ++ "vscanf2.S",
737 "stdio" ++ path.sep_str ++ "vsnprintf.c",728 "stdio" ++ path.sep_str ++ "vsnprintf.c",
738 "stdio" ++ path.sep_str ++ "vsnwprintf.c",729 "stdio" ++ path.sep_str ++ "vsnwprintf.c",
739 "stdio" ++ path.sep_str ++ "vsscanf.c",
740 "stdio" ++ path.sep_str ++ "vsscanf2.S",
741 "stdio" ++ path.sep_str ++ "vswscanf.c",
742 "stdio" ++ path.sep_str ++ "vswscanf2.S",
743 "stdio" ++ path.sep_str ++ "vwscanf.c",
744 "stdio" ++ path.sep_str ++ "vwscanf2.S",
745 "stdio" ++ path.sep_str ++ "wtoll.c",730 "stdio" ++ path.sep_str ++ "wtoll.c",
746 // mingwthrd731 // mingwthrd
747 "libsrc" ++ path.sep_str ++ "mingwthrd_mt.c",732 "libsrc" ++ path.sep_str ++ "mingwthrd_mt.c",
...@@ -768,6 +753,7 @@ const mingw32_generic_src = [_][]const u8{...@@ -768,6 +753,7 @@ const mingw32_generic_src = [_][]const u8{
768 "stdio" ++ path.sep_str ++ "ucrt_fprintf.c",753 "stdio" ++ path.sep_str ++ "ucrt_fprintf.c",
769 "stdio" ++ path.sep_str ++ "ucrt_fscanf.c",754 "stdio" ++ path.sep_str ++ "ucrt_fscanf.c",
770 "stdio" ++ path.sep_str ++ "ucrt_fwprintf.c",755 "stdio" ++ path.sep_str ++ "ucrt_fwprintf.c",
756 "stdio" ++ path.sep_str ++ "ucrt_ms_fprintf.c",
771 "stdio" ++ path.sep_str ++ "ucrt_ms_fwprintf.c",757 "stdio" ++ path.sep_str ++ "ucrt_ms_fwprintf.c",
772 "stdio" ++ path.sep_str ++ "ucrt_printf.c",758 "stdio" ++ path.sep_str ++ "ucrt_printf.c",
773 "stdio" ++ path.sep_str ++ "ucrt_scanf.c",759 "stdio" ++ path.sep_str ++ "ucrt_scanf.c",
...@@ -933,6 +919,7 @@ const mingw32_x86_src = [_][]const u8{...@@ -933,6 +919,7 @@ const mingw32_x86_src = [_][]const u8{
933 "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cosl.c",919 "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cosl.c",
934 "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cosl_internal.S",920 "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cosl_internal.S",
935 "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cossin.c",921 "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cossin.c",
922 "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cossinl.c",
936 "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "exp2l.S",923 "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "exp2l.S",
937 "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "expl.c",924 "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "expl.c",
938 "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "expm1l.c",925 "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "expm1l.c",
tools/update_mingw.zig+55-9
...@@ -42,11 +42,12 @@ pub fn main() !void {...@@ -42,11 +42,12 @@ pub fn main() !void {
4242
43 src_crt_dir.copyFile(entry.path, dest_crt_dir, entry.path, .{}) catch |err| switch (err) {43 src_crt_dir.copyFile(entry.path, dest_crt_dir, entry.path, .{}) catch |err| switch (err) {
44 error.FileNotFound => {44 error.FileNotFound => {
45 const whitelisted = for (whitelist) |item| {45 const keep = for (kept_crt_files) |item| {
46 if (std.mem.eql(u8, entry.path, item)) break true;46 if (std.mem.eql(u8, entry.path, item)) break true;
47 if (std.mem.startsWith(u8, entry.path, "winpthreads/")) break true;
47 } else false;48 } else false;
4849
49 if (!whitelisted) {50 if (!keep) {
50 std.log.warn("deleting {s}", .{entry.path});51 std.log.warn("deleting {s}", .{entry.path});
51 try dest_crt_dir.deleteFile(entry.path);52 try dest_crt_dir.deleteFile(entry.path);
52 }53 }
...@@ -61,6 +62,51 @@ pub fn main() !void {...@@ -61,6 +62,51 @@ pub fn main() !void {
61 if (fail) std.process.exit(1);62 if (fail) std.process.exit(1);
62 }63 }
6364
65 {
66 const dest_mingw_winpthreads_path = try std.fs.path.join(arena, &.{
67 zig_src_lib_path, "libc", "mingw", "winpthreads",
68 });
69 const src_mingw_libraries_winpthreads_src_path = try std.fs.path.join(arena, &.{
70 mingw_src_path, "mingw-w64-libraries", "winpthreads", "src",
71 });
72
73 var dest_winpthreads_dir = std.fs.cwd().openDir(dest_mingw_winpthreads_path, .{ .iterate = true }) catch |err| {
74 std.log.err("unable to open directory '{s}': {s}", .{ dest_mingw_winpthreads_path, @errorName(err) });
75 std.process.exit(1);
76 };
77 defer dest_winpthreads_dir.close();
78
79 var src_winpthreads_dir = std.fs.cwd().openDir(src_mingw_libraries_winpthreads_src_path, .{ .iterate = true }) catch |err| {
80 std.log.err("unable to open directory '{s}': {s}", .{ src_mingw_libraries_winpthreads_src_path, @errorName(err) });
81 std.process.exit(1);
82 };
83 defer src_winpthreads_dir.close();
84
85 {
86 var walker = try dest_winpthreads_dir.walk(arena);
87 defer walker.deinit();
88
89 var fail = false;
90
91 while (try walker.next()) |entry| {
92 if (entry.kind != .file) continue;
93
94 src_winpthreads_dir.copyFile(entry.path, dest_winpthreads_dir, entry.path, .{}) catch |err| switch (err) {
95 error.FileNotFound => {
96 std.log.warn("deleting {s}", .{entry.path});
97 try dest_winpthreads_dir.deleteFile(entry.path);
98 },
99 else => {
100 std.log.err("unable to copy {s}: {s}", .{ entry.path, @errorName(err) });
101 fail = true;
102 },
103 };
104 }
105
106 if (fail) std.process.exit(1);
107 }
108 }
109
64 {110 {
65 // Also add all new def and def.in files.111 // Also add all new def and def.in files.
66 var walker = try src_crt_dir.walk(arena);112 var walker = try src_crt_dir.walk(arena);
...@@ -71,19 +117,19 @@ pub fn main() !void {...@@ -71,19 +117,19 @@ pub fn main() !void {
71 while (try walker.next()) |entry| {117 while (try walker.next()) |entry| {
72 if (entry.kind != .file) continue;118 if (entry.kind != .file) continue;
73119
74 const ok_ext = for (ok_exts) |ext| {120 const ok_ext = for (def_exts) |ext| {
75 if (std.mem.endsWith(u8, entry.path, ext)) break true;121 if (std.mem.endsWith(u8, entry.path, ext)) break true;
76 } else false;122 } else false;
77123
78 if (!ok_ext) continue;124 if (!ok_ext) continue;
79125
80 const ok_prefix = for (ok_prefixes) |p| {126 const ok_prefix = for (def_dirs) |p| {
81 if (std.mem.startsWith(u8, entry.path, p)) break true;127 if (std.mem.startsWith(u8, entry.path, p)) break true;
82 } else false;128 } else false;
83129
84 if (!ok_prefix) continue;130 if (!ok_prefix) continue;
85131
86 const blacklisted = for (blacklist) |item| {132 const blacklisted = for (blacklisted_defs) |item| {
87 if (std.mem.eql(u8, entry.basename, item)) break true;133 if (std.mem.eql(u8, entry.basename, item)) break true;
88 } else false;134 } else false;
89135
...@@ -106,17 +152,17 @@ pub fn main() !void {...@@ -106,17 +152,17 @@ pub fn main() !void {
106 return std.process.cleanExit();152 return std.process.cleanExit();
107}153}
108154
109const whitelist = [_][]const u8{155const kept_crt_files = [_][]const u8{
110 "COPYING",156 "COPYING",
111 "include" ++ std.fs.path.sep_str ++ "config.h",157 "include" ++ std.fs.path.sep_str ++ "config.h",
112};158};
113159
114const ok_exts = [_][]const u8{160const def_exts = [_][]const u8{
115 ".def",161 ".def",
116 ".def.in",162 ".def.in",
117};163};
118164
119const ok_prefixes = [_][]const u8{165const def_dirs = [_][]const u8{
120 "lib32" ++ std.fs.path.sep_str,166 "lib32" ++ std.fs.path.sep_str,
121 "lib64" ++ std.fs.path.sep_str,167 "lib64" ++ std.fs.path.sep_str,
122 "libarm32" ++ std.fs.path.sep_str,168 "libarm32" ++ std.fs.path.sep_str,
...@@ -125,7 +171,7 @@ const ok_prefixes = [_][]const u8{...@@ -125,7 +171,7 @@ const ok_prefixes = [_][]const u8{
125 "def-include" ++ std.fs.path.sep_str,171 "def-include" ++ std.fs.path.sep_str,
126};172};
127173
128const blacklist = [_][]const u8{174const blacklisted_defs = [_][]const u8{
129 "crtdll.def.in",175 "crtdll.def.in",
130176
131 "msvcp60.def",177 "msvcp60.def",