| author | |
| committer | |
| log | bedf806672d9e00203f9942c62887b271d12eb7f |
| tree | 1cf88fb0adbe169c3816eec80a632647326a18f5 |
| parent | 37706cc1d98025c5ebff52d35cb6929ea1562dd7 |
| parent | 51b44be9ccc216dd06ab1399b05a36a9771f13fe |
| signature |
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 | 237 | # endif |
| 238 | 238 | #endif |
| 239 | 239 | |
| 240 | #if !defined(__CRTDLL__) && __MSVCRT_VERSION__ == 0x00 | |
| 241 | #define __CRTDLL__ | |
| 242 | #endif | |
| 243 | ||
| 240 | 244 | #if !defined(_UCRT) && ((__MSVCRT_VERSION__ >= 0x1400) || (__MSVCRT_VERSION__ >= 0xE00 && __MSVCRT_VERSION__ < 0x1000)) |
| 241 | 245 | /* Allow both 0x1400 and 0xE00 to identify UCRT */ |
| 242 | 246 | #define _UCRT |
| ... | ... | @@ -594,12 +598,12 @@ extern "C" { |
| 594 | 598 | void __cdecl __debugbreak(void); |
| 595 | 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 | 604 | __asm__ __volatile__("int {$}3":); |
| 599 | 605 | #elif defined(__arm__) |
| 600 | 606 | __asm__ __volatile__("udf #0xfe"); |
| 601 | #elif defined(__aarch64__) | |
| 602 | __asm__ __volatile__("brk #0xf000"); | |
| 603 | 607 | #else |
| 604 | 608 | __asm__ __volatile__("unimplemented"); |
| 605 | 609 | #endif |
| ... | ... | @@ -615,14 +619,14 @@ __MINGW_INTRIN_INLINE void __cdecl __debugbreak(void) |
| 615 | 619 | void __cdecl __MINGW_ATTRIB_NORETURN __fastfail(unsigned int code); |
| 616 | 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 | 626 | __asm__ __volatile__("int {$}0x29"::"c"(code)); |
| 620 | 627 | #elif defined(__arm__) |
| 621 | 628 | register unsigned int r0 __asm__("r0") = code; |
| 622 | 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 | 630 | #else |
| 627 | 631 | __asm__ __volatile__("unimplemented"); |
| 628 | 632 | #endif |
| ... | ... | @@ -636,13 +640,13 @@ __MINGW_INTRIN_INLINE void __cdecl __MINGW_ATTRIB_NORETURN __fastfail(unsigned i |
| 636 | 640 | #define __MINGW_PREFETCH_IMPL 1 |
| 637 | 641 | #endif |
| 638 | 642 | #if __MINGW_PREFETCH_IMPL == 1 |
| 639 | #if defined(__arm__) || defined(__aarch64__) | |
| 643 | #if defined(__arm__) || defined(__aarch64__) || defined(__arm64ec__) | |
| 640 | 644 | void __cdecl __prefetch(const void *addr); |
| 641 | 645 | __MINGW_INTRIN_INLINE void __cdecl __prefetch(const void *addr) |
| 642 | 646 | { |
| 643 | 647 | #if defined(__arm__) |
| 644 | 648 | __asm__ __volatile__("pld [%0]"::"r"(addr)); |
| 645 | #elif defined(__aarch64__) | |
| 649 | #elif defined(__aarch64__) || defined(__arm64ec__) | |
| 646 | 650 | __asm__ __volatile__("prfm pldl1keep, [%0]"::"r"(addr)); |
| 647 | 651 | #endif |
| 648 | 652 | } |
lib/libc/include/any-windows-any/_mingw_mac.h+16-6| ... | ... | @@ -7,6 +7,9 @@ |
| 7 | 7 | #ifndef _INC_CRTDEFS_MACRO |
| 8 | 8 | #define _INC_CRTDEFS_MACRO |
| 9 | 9 | |
| 10 | #define __MINGW64_PASTE2(x, y) x ## y | |
| 11 | #define __MINGW64_PASTE(x, y) __MINGW64_PASTE2(x, y) | |
| 12 | ||
| 10 | 13 | #define __STRINGIFY(x) #x |
| 11 | 14 | #define __MINGW64_STRINGIFY(x) \ |
| 12 | 15 | __STRINGIFY(x) |
| ... | ... | @@ -88,6 +91,13 @@ |
| 88 | 91 | # endif |
| 89 | 92 | #endif |
| 90 | 93 | |
| 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 | 101 | #ifndef _X86_ |
| 92 | 102 | /* MS does not prefix symbols by underscores for 64-bit. */ |
| 93 | 103 | # ifndef __MINGW_USE_UNDERSCORE_PREFIX |
| ... | ... | @@ -116,14 +126,14 @@ |
| 116 | 126 | #endif /* ifndef _X86_ */ |
| 117 | 127 | |
| 118 | 128 | #if __MINGW_USE_UNDERSCORE_PREFIX == 0 |
| 119 | # define __MINGW_IMP_SYMBOL(sym) __imp_##sym | |
| 120 | # define __MINGW_IMP_LSYMBOL(sym) __imp_##sym | |
| 129 | # define __MINGW_IMP_SYMBOL(sym) __MINGW64_PASTE(__imp_,sym) | |
| 130 | # define __MINGW_IMP_LSYMBOL(sym) __MINGW64_PASTE(__imp_,sym) | |
| 121 | 131 | # define __MINGW_USYMBOL(sym) sym |
| 122 | # define __MINGW_LSYMBOL(sym) _##sym | |
| 132 | # define __MINGW_LSYMBOL(sym) __MINGW64_PASTE(_,sym) | |
| 123 | 133 | #else /* ! if __MINGW_USE_UNDERSCORE_PREFIX == 0 */ |
| 124 | # define __MINGW_IMP_SYMBOL(sym) _imp__##sym | |
| 125 | # define __MINGW_IMP_LSYMBOL(sym) __imp__##sym | |
| 126 | # define __MINGW_USYMBOL(sym) _##sym | |
| 134 | # define __MINGW_IMP_SYMBOL(sym) __MINGW64_PASTE(_imp__,sym) | |
| 135 | # define __MINGW_IMP_LSYMBOL(sym) __MINGW64_PASTE(__imp__,sym) | |
| 136 | # define __MINGW_USYMBOL(sym) __MINGW64_PASTE(_,sym) | |
| 127 | 137 | # define __MINGW_LSYMBOL(sym) sym |
| 128 | 138 | #endif /* if __MINGW_USE_UNDERSCORE_PREFIX == 0 */ |
| 129 | 139 |
lib/libc/include/any-windows-any/activation.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/activaut.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/activdbg.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/activdbg100.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/activprof.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/activscp.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/adhoc.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/alg.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/amstream.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/amvideo.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/asyncinfo.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/audioclient.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/audioendpoints.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/audiopolicy.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/austream.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/bdaiface.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/bits.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/bits1_5.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/bits2_0.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/bits2_5.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/bits3_0.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/bits5_0.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/comadmin.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 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 | 354 | WINOLEAPI CoInvalidateRemoteMachineBindings (LPOLESTR pszMachineName); |
| 355 | 355 | #endif |
| 356 | 356 | |
| 357 | #if (NTDDI_VERSION >= NTDDI_WINBLUE) | |
| 358 | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) | |
| 359 | enum AgileReferenceOptions { | |
| 360 | AGILEREFERENCE_DEFAULT = 0, | |
| 361 | AGILEREFERENCE_DELAYEDMARSHAL = 1 | |
| 362 | }; | |
| 363 | ||
| 364 | WINOLEAPI RoGetAgileReference(enum AgileReferenceOptions options, REFIID riid, IUnknown *pUnk, IAgileReference **ppAgileReference); | |
| 365 | #endif | |
| 366 | #endif | |
| 367 | ||
| 357 | 368 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 358 | 369 | typedef HRESULT (STDAPICALLTYPE *LPFNGETCLASSOBJECT) (REFCLSID, REFIID, LPVOID *); |
| 359 | 370 | typedef HRESULT (STDAPICALLTYPE *LPFNCANUNLOADNOW) (void); |
lib/libc/include/any-windows-any/comcat.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/commoncontrols.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 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 | |
| 20 | extern "C" { | |
| 21 | #endif | |
| 22 | ||
| 23 | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) | |
| 24 | ||
| 25 | WINBASEAPI WINBOOL WINAPI AllocConsole(void); | |
| 26 | ||
| 27 | #if (NTDDI_VERSION >= NTDDI_WIN11_GE) | |
| 28 | ||
| 29 | typedef 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 | ||
| 35 | typedef struct ALLOC_CONSOLE_OPTIONS { | |
| 36 | ALLOC_CONSOLE_MODE mode; | |
| 37 | WINBOOL useShowWindow; | |
| 38 | WORD showWindow; | |
| 39 | } ALLOC_CONSOLE_OPTIONS, *PALLOC_CONSOLE_OPTIONS; | |
| 40 | ||
| 41 | typedef 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 | ||
| 47 | WINBASEAPI HRESULT WINAPI AllocConsoleWithOptions(PALLOC_CONSOLE_OPTIONS options, PALLOC_CONSOLE_RESULT result); | |
| 48 | ||
| 49 | #endif /* NTDDI_VERSION >= NTDDI_WIN11_GE */ | |
| 50 | ||
| 51 | WINBASEAPI WINBOOL WINAPI FreeConsole(void); | |
| 52 | ||
| 53 | #if (_WIN32_WINNT >= 0x0500) | |
| 54 | ||
| 55 | WINBASEAPI WINBOOL WINAPI AttachConsole(DWORD process_id); | |
| 56 | ||
| 57 | #define ATTACH_PARENT_PROCESS ((DWORD)-1) | |
| 58 | ||
| 59 | #endif /* _WIN32_WINNT >= 0x0500 */ | |
| 60 | ||
| 61 | WINBASEAPI UINT WINAPI GetConsoleCP(void); | |
| 62 | WINBASEAPI 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 | ||
| 81 | WINBASEAPI WINBOOL WINAPI GetConsoleMode(HANDLE console_handle, LPDWORD mode); | |
| 82 | WINBASEAPI WINBOOL WINAPI SetConsoleMode(HANDLE console_handle, DWORD mode); | |
| 83 | WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE console_input, LPDWORD number_of_events); | |
| 84 | ||
| 85 | WINBASEAPI WINBOOL WINAPI ReadConsoleInputA(HANDLE console_input, PINPUT_RECORD buffer, DWORD length, LPDWORD number_of_events_read); | |
| 86 | WINBASEAPI WINBOOL WINAPI ReadConsoleInputW(HANDLE console_input, PINPUT_RECORD buffer, DWORD length, LPDWORD number_of_events_read); | |
| 87 | #define ReadConsoleInput __MINGW_NAME_AW(ReadConsoleInput) | |
| 88 | ||
| 89 | WINBASEAPI WINBOOL WINAPI PeekConsoleInputA(HANDLE console_input, PINPUT_RECORD buffer, DWORD length, LPDWORD number_of_events_read); | |
| 90 | WINBASEAPI WINBOOL WINAPI PeekConsoleInputW(HANDLE console_input, PINPUT_RECORD buffer, DWORD length, LPDWORD number_of_events_read); | |
| 91 | #define PeekConsoleInput __MINGW_NAME_AW(PeekConsoleInput) | |
| 92 | ||
| 93 | typedef struct _CONSOLE_READCONSOLE_CONTROL { | |
| 94 | ULONG nLength; | |
| 95 | ULONG nInitialChars; | |
| 96 | ULONG dwCtrlWakeupMask; | |
| 97 | ULONG dwControlKeyState; | |
| 98 | } CONSOLE_READCONSOLE_CONTROL, *PCONSOLE_READCONSOLE_CONTROL; | |
| 99 | ||
| 100 | WINBASEAPI WINBOOL WINAPI ReadConsoleA(HANDLE console_input, LPVOID buffer, DWORD number_of_chars_to_read, LPDWORD number_of_chars_read, PCONSOLE_READCONSOLE_CONTROL input_control); | |
| 101 | WINBASEAPI WINBOOL WINAPI ReadConsoleW(HANDLE console_input, LPVOID buffer, DWORD number_of_chars_to_read, LPDWORD number_of_chars_read, PCONSOLE_READCONSOLE_CONTROL input_control); | |
| 102 | #define ReadConsole __MINGW_NAME_AW(ReadConsole) | |
| 103 | ||
| 104 | WINBASEAPI WINBOOL WINAPI WriteConsoleA(HANDLE console_output, const void *buffer, DWORD number_of_chars_to_write, LPDWORD number_of_chars_written, LPVOID reserved); | |
| 105 | WINBASEAPI 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 | ||
| 114 | typedef WINBOOL (WINAPI *PHANDLER_ROUTINE)(DWORD ctrl_type); | |
| 115 | WINBASEAPI 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 | ||
| 124 | WINBASEAPI HRESULT WINAPI CreatePseudoConsole(COORD size, HANDLE input, HANDLE output, DWORD flags, HPCON *pc); | |
| 125 | WINBASEAPI HRESULT WINAPI ResizePseudoConsole(HPCON pc, COORD size); | |
| 126 | WINBASEAPI void WINAPI ClosePseudoConsole(HPCON pc); | |
| 127 | #endif | |
| 128 | ||
| 129 | #if (NTDDI_VERSION >= NTDDI_WIN11_GE) | |
| 130 | WINBASEAPI 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 | |
| 21 | extern "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 | ||
| 44 | WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterA(HANDLE console_output, CHAR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written); | |
| 45 | WINBASEAPI 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 | ||
| 48 | WINBASEAPI WINBOOL WINAPI FillConsoleOutputAttribute(HANDLE console_output, WORD attribute, DWORD length, COORD write_coord, LPDWORD number_of_attrs_written); | |
| 49 | WINBASEAPI WINBOOL WINAPI GenerateConsoleCtrlEvent(DWORD ctrl_event, DWORD process_group_id); | |
| 50 | WINBASEAPI HANDLE WINAPI CreateConsoleScreenBuffer(DWORD desired_access, DWORD share_mode, const SECURITY_ATTRIBUTES *security_attributes, DWORD flags, LPVOID screen_buffer_data); | |
| 51 | WINBASEAPI WINBOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE console_output); | |
| 52 | WINBASEAPI WINBOOL WINAPI FlushConsoleInputBuffer(HANDLE console_input); | |
| 53 | WINBASEAPI WINBOOL WINAPI SetConsoleCP(UINT code_page_id); | |
| 54 | WINBASEAPI WINBOOL WINAPI SetConsoleOutputCP(UINT code_page_id); | |
| 55 | ||
| 56 | typedef struct _CONSOLE_CURSOR_INFO { | |
| 57 | DWORD dwSize; | |
| 58 | WINBOOL bVisible; | |
| 59 | } CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO; | |
| 60 | ||
| 61 | WINBASEAPI WINBOOL WINAPI GetConsoleCursorInfo(HANDLE console_output, PCONSOLE_CURSOR_INFO console_cursor_info); | |
| 62 | WINBASEAPI WINBOOL WINAPI SetConsoleCursorInfo(HANDLE console_output, const CONSOLE_CURSOR_INFO *console_cursor_info); | |
| 63 | ||
| 64 | typedef 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 | ||
| 72 | WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfo(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFO console_screen_buffer_info); | |
| 73 | ||
| 74 | typedef 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 | ||
| 86 | WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfoEx(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFOEX console_screen_buffer_info_ex); | |
| 87 | WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferInfoEx(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFOEX console_screen_buffer_info_ex); | |
| 88 | WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferSize(HANDLE console_output, COORD size); | |
| 89 | WINBASEAPI WINBOOL WINAPI SetConsoleCursorPosition(HANDLE console_output, COORD cursor_position); | |
| 90 | WINBASEAPI COORD WINAPI GetLargestConsoleWindowSize(HANDLE console_output); | |
| 91 | WINBASEAPI WINBOOL WINAPI SetConsoleTextAttribute(HANDLE console_output, WORD attributes); | |
| 92 | WINBASEAPI WINBOOL WINAPI SetConsoleWindowInfo(HANDLE console_output, WINBOOL absolute, const SMALL_RECT *console_window); | |
| 93 | ||
| 94 | WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterA(HANDLE console_output, LPCSTR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written); | |
| 95 | WINBASEAPI 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 | ||
| 98 | WINBASEAPI WINBOOL WINAPI WriteConsoleOutputAttribute(HANDLE console_output, const WORD *attribute, DWORD length, COORD write_coord, LPDWORD number_of_attrs_written); | |
| 99 | ||
| 100 | WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterA(HANDLE console_output, LPSTR character, DWORD length, COORD read_coord, LPDWORD number_of_chars_read); | |
| 101 | WINBASEAPI 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 | ||
| 104 | WINBASEAPI WINBOOL WINAPI ReadConsoleOutputAttribute(HANDLE console_output, LPWORD attribute, DWORD length, COORD read_coord, LPDWORD number_of_attrs_read); | |
| 105 | ||
| 106 | WINBASEAPI WINBOOL WINAPI WriteConsoleInputA(HANDLE console_input, const INPUT_RECORD *buffer, DWORD length, LPDWORD number_of_events_written); | |
| 107 | WINBASEAPI 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 | ||
| 110 | WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferA(HANDLE console_output, const SMALL_RECT *scroll_rectangle, const SMALL_RECT *clip_rectangle, COORD destination_origin, const CHAR_INFO *fill); | |
| 111 | WINBASEAPI 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 | ||
| 114 | WINBASEAPI WINBOOL WINAPI WriteConsoleOutputA(HANDLE console_output, const CHAR_INFO *buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT write_region); | |
| 115 | WINBASEAPI 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 | ||
| 118 | WINBASEAPI WINBOOL WINAPI ReadConsoleOutputA(HANDLE console_output, PCHAR_INFO buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT read_region); | |
| 119 | WINBASEAPI 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 | ||
| 122 | WINBASEAPI DWORD WINAPI GetConsoleTitleA(LPSTR console_title, DWORD size); | |
| 123 | WINBASEAPI DWORD WINAPI GetConsoleTitleW(LPWSTR console_title, DWORD size); | |
| 124 | #define GetConsoleTitle __MINGW_NAME_AW(GetConsoleTitle) | |
| 125 | ||
| 126 | #if (_WIN32_WINNT >= 0x0600) | |
| 127 | ||
| 128 | WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleA(LPSTR console_title, DWORD size); | |
| 129 | WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleW(LPWSTR console_title, DWORD size); | |
| 130 | #define GetConsoleOriginalTitle __MINGW_NAME_AW(GetConsoleOriginalTitle) | |
| 131 | ||
| 132 | #endif /* _WIN32_WINNT >= 0x0600 */ | |
| 133 | ||
| 134 | WINBASEAPI WINBOOL WINAPI SetConsoleTitleA(LPCSTR console_title); | |
| 135 | WINBASEAPI 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 | |
| 25 | extern "C" { | |
| 26 | #endif | |
| 27 | ||
| 28 | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) | |
| 29 | ||
| 30 | WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD number_of_mouse_buttons); | |
| 31 | ||
| 32 | #if (_WIN32_WINNT >= 0x0500) | |
| 33 | ||
| 34 | WINBASEAPI COORD WINAPI GetConsoleFontSize(HANDLE console_output, DWORD font); | |
| 35 | WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFont(HANDLE console_output, WINBOOL maximum_window, PCONSOLE_FONT_INFO console_current_font); | |
| 36 | ||
| 37 | #ifndef NOGDI | |
| 38 | ||
| 39 | typedef 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 | ||
| 48 | WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFontEx(HANDLE console_output, WINBOOL maximum_window, PCONSOLE_FONT_INFOEX console_current_font_ex); | |
| 49 | WINBASEAPI 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 | ||
| 59 | typedef struct _CONSOLE_SELECTION_INFO { | |
| 60 | DWORD dwFlags; | |
| 61 | COORD dwSelectionAnchor; | |
| 62 | SMALL_RECT srSelection; | |
| 63 | } CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO; | |
| 64 | ||
| 65 | WINBASEAPI WINBOOL WINAPI GetConsoleSelectionInfo(PCONSOLE_SELECTION_INFO console_selection_info); | |
| 66 | ||
| 67 | #define HISTORY_NO_DUP_FLAG 0x1 | |
| 68 | ||
| 69 | typedef struct _CONSOLE_HISTORY_INFO { | |
| 70 | UINT cbSize; | |
| 71 | UINT HistoryBufferSize; | |
| 72 | UINT NumberOfHistoryBuffers; | |
| 73 | DWORD dwFlags; | |
| 74 | } CONSOLE_HISTORY_INFO, *PCONSOLE_HISTORY_INFO; | |
| 75 | ||
| 76 | WINBASEAPI WINBOOL WINAPI GetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO console_history_info); | |
| 77 | WINBASEAPI WINBOOL WINAPI SetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO console_history_info); | |
| 78 | ||
| 79 | #define CONSOLE_FULLSCREEN 1 | |
| 80 | #define CONSOLE_FULLSCREEN_HARDWARE 2 | |
| 81 | ||
| 82 | WINBASEAPI WINBOOL APIENTRY GetConsoleDisplayMode(LPDWORD mode_flags); | |
| 83 | ||
| 84 | #define CONSOLE_FULLSCREEN_MODE 1 | |
| 85 | #define CONSOLE_WINDOWED_MODE 2 | |
| 86 | ||
| 87 | WINBASEAPI WINBOOL APIENTRY SetConsoleDisplayMode(HANDLE console_output, DWORD flags, PCOORD new_screen_buffer_dimensions); | |
| 88 | WINBASEAPI HWND APIENTRY GetConsoleWindow(void); | |
| 89 | ||
| 90 | #endif /* _WIN32_WINNT >= 0x0500 */ | |
| 91 | ||
| 92 | #if (_WIN32_WINNT >= 0x0501) | |
| 93 | ||
| 94 | WINBASEAPI WINBOOL APIENTRY AddConsoleAliasA(LPSTR source, LPSTR target, LPSTR exe_name); | |
| 95 | WINBASEAPI WINBOOL APIENTRY AddConsoleAliasW(LPWSTR source, LPWSTR target, LPWSTR exe_name); | |
| 96 | #define AddConsoleAlias __MINGW_NAME_AW(AddConsoleAlias) | |
| 97 | ||
| 98 | WINBASEAPI DWORD APIENTRY GetConsoleAliasA(LPSTR source, LPSTR target_buffer, DWORD target_buffer_length, LPSTR exe_name); | |
| 99 | WINBASEAPI DWORD APIENTRY GetConsoleAliasW(LPWSTR source, LPWSTR target_buffer, DWORD target_buffer_length, LPWSTR exe_name); | |
| 100 | #define GetConsoleAlias __MINGW_NAME_AW(GetConsoleAlias) | |
| 101 | ||
| 102 | WINBASEAPI DWORD APIENTRY GetConsoleAliasesLengthA(LPSTR exe_name); | |
| 103 | WINBASEAPI DWORD APIENTRY GetConsoleAliasesLengthW(LPWSTR exe_name); | |
| 104 | #define GetConsoleAliasesLength __MINGW_NAME_AW(GetConsoleAliasesLength) | |
| 105 | ||
| 106 | WINBASEAPI DWORD APIENTRY GetConsoleAliasExesLengthA(void); | |
| 107 | WINBASEAPI DWORD APIENTRY GetConsoleAliasExesLengthW(void); | |
| 108 | #define GetConsoleAliasExesLength __MINGW_NAME_AW(GetConsoleAliasExesLength) | |
| 109 | ||
| 110 | WINBASEAPI DWORD APIENTRY GetConsoleAliasesA(LPSTR alias_buffer, DWORD alias_buffer_length, LPSTR exe_name); | |
| 111 | WINBASEAPI DWORD APIENTRY GetConsoleAliasesW(LPWSTR alias_buffer, DWORD alias_buffer_length, LPWSTR exe_name); | |
| 112 | #define GetConsoleAliases __MINGW_NAME_AW(GetConsoleAliases) | |
| 113 | ||
| 114 | WINBASEAPI DWORD APIENTRY GetConsoleAliasExesA(LPSTR exe_name_buffer, DWORD exe_name_buffer_length); | |
| 115 | WINBASEAPI 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 | ||
| 120 | WINBASEAPI void APIENTRY ExpungeConsoleCommandHistoryA(LPSTR exe_name); | |
| 121 | WINBASEAPI void APIENTRY ExpungeConsoleCommandHistoryW(LPWSTR exe_name); | |
| 122 | #define ExpungeConsoleCommandHistory __MINGW_NAME_AW(ExpungeConsoleCommandHistory) | |
| 123 | ||
| 124 | WINBASEAPI WINBOOL APIENTRY SetConsoleNumberOfCommandsA(DWORD number, LPSTR exe_name); | |
| 125 | WINBASEAPI WINBOOL APIENTRY SetConsoleNumberOfCommandsW(DWORD number, LPWSTR exe_name); | |
| 126 | #define SetConsoleNumberOfCommands __MINGW_NAME_AW(SetConsoleNumberOfCommands) | |
| 127 | ||
| 128 | WINBASEAPI DWORD APIENTRY GetConsoleCommandHistoryLengthA(LPSTR exe_name); | |
| 129 | WINBASEAPI DWORD APIENTRY GetConsoleCommandHistoryLengthW(LPWSTR exe_name); | |
| 130 | #define GetConsoleCommandHistoryLength __MINGW_NAME_AW(GetConsoleCommandHistoryLength) | |
| 131 | ||
| 132 | WINBASEAPI DWORD APIENTRY GetConsoleCommandHistoryA(LPSTR commands, DWORD command_buffer_length, LPSTR exe_name); | |
| 133 | WINBASEAPI 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) | |
| 137 | WINBASEAPI 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 | /*** 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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/corecrt_wstdlib.h+9-1| ... | ... | @@ -10,6 +10,15 @@ |
| 10 | 10 | |
| 11 | 11 | #ifdef __cplusplus |
| 12 | 12 | extern "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 | 22 | #endif |
| 14 | 23 | |
| 15 | 24 | _CRTIMP errno_t __cdecl _itow_s (int _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix); |
| ... | ... | @@ -24,7 +33,6 @@ extern "C" { |
| 24 | 33 | _CRTIMP errno_t __cdecl _wgetenv_s(size_t *_ReturnSize,wchar_t *_DstBuf,size_t _DstSizeInWords,const wchar_t *_VarName); |
| 25 | 34 | __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t,_wgetenv_s,size_t*,_ReturnSize,wchar_t,_DstBuf,const wchar_t*,_VarName) |
| 26 | 35 | |
| 27 | _CRTIMP errno_t __cdecl _wdupenv_s(wchar_t **_Buffer,size_t *_BufferSizeInWords,const wchar_t *_VarName); | |
| 28 | 36 | _CRTIMP errno_t __cdecl _i64tow_s(__int64 _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix); |
| 29 | 37 | _CRTIMP errno_t __cdecl _ui64tow_s(unsigned __int64 _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix); |
| 30 | 38 |
lib/libc/include/any-windows-any/credentialprovider.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/crtdbg.h+231-1| ... | ... | @@ -4,6 +4,7 @@ |
| 4 | 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| 5 | 5 | */ |
| 6 | 6 | #include <crtdefs.h> |
| 7 | #include <sal.h> | |
| 7 | 8 | |
| 8 | 9 | #ifndef _INC_CRTDBG |
| 9 | 10 | #define _INC_CRTDBG |
| ... | ... | @@ -94,13 +95,21 @@ extern "C" { |
| 94 | 95 | } _CrtMemState; |
| 95 | 96 | |
| 96 | 97 | #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 | 105 | #define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr)] |
| 99 | 106 | #else |
| 100 | 107 | #define _STATIC_ASSERT(expr) extern void __static_assert_t(int [(expr)?1:-1]) |
| 101 | 108 | #endif |
| 102 | 109 | #endif |
| 103 | 110 | |
| 111 | #ifndef _DEBUG | |
| 112 | ||
| 104 | 113 | #ifndef _ASSERT |
| 105 | 114 | #define _ASSERT(expr) ((void)0) |
| 106 | 115 | #endif |
| ... | ... | @@ -208,6 +217,227 @@ extern "C" { |
| 208 | 217 | #define _CrtSetCheckCount(f) ((int)0) |
| 209 | 218 | #define _CrtGetCheckCount() ((int)0) |
| 210 | 219 | |
| 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 | 441 | #ifdef __cplusplus |
| 212 | 442 | } |
| 213 | 443 | /* |
lib/libc/include/any-windows-any/ctfutb.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/ctxtcall.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/ctype.h+41-31| ... | ... | @@ -111,35 +111,38 @@ extern "C" { |
| 111 | 111 | _CRTIMP int __cdecl __toascii(int _C); |
| 112 | 112 | _CRTIMP int __cdecl __iscsymf(int _C); |
| 113 | 113 | _CRTIMP int __cdecl __iscsym(int _C); |
| 114 | ||
| 115 | #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) || defined (__cplusplus) | |
| 116 | int __cdecl isblank(int _C); | |
| 117 | #endif | |
| 114 | #if __MSVCRT_VERSION__ >= 0xC00 | |
| 115 | _CRTIMP int __cdecl isblank(int _C); | |
| 116 | _CRTIMP int __cdecl _isblank_l(int _C,_locale_t _Locale); | |
| 117 | #else | |
| 118 | int __cdecl isblank(int _C); | |
| 119 | #endif /* msvcr120 */ | |
| 118 | 120 | #endif |
| 119 | 121 | |
| 120 | 122 | #ifndef _WCTYPE_DEFINED |
| 121 | 123 | #define _WCTYPE_DEFINED |
| 122 | 124 | |
| 123 | int __cdecl iswalpha(wint_t _C); | |
| 124 | int __cdecl iswupper(wint_t _C); | |
| 125 | int __cdecl iswlower(wint_t _C); | |
| 126 | int __cdecl iswdigit(wint_t _C); | |
| 127 | int __cdecl iswxdigit(wint_t _C); | |
| 128 | int __cdecl iswspace(wint_t _C); | |
| 129 | int __cdecl iswpunct(wint_t _C); | |
| 130 | int __cdecl iswalnum(wint_t _C); | |
| 131 | int __cdecl iswprint(wint_t _C); | |
| 132 | int __cdecl iswgraph(wint_t _C); | |
| 133 | int __cdecl iswcntrl(wint_t _C); | |
| 134 | int __cdecl iswascii(wint_t _C); | |
| 125 | _CRTIMP int __cdecl iswalpha(wint_t _C); | |
| 126 | _CRTIMP int __cdecl iswupper(wint_t _C); | |
| 127 | _CRTIMP int __cdecl iswlower(wint_t _C); | |
| 128 | _CRTIMP int __cdecl iswdigit(wint_t _C); | |
| 129 | _CRTIMP int __cdecl iswxdigit(wint_t _C); | |
| 130 | _CRTIMP int __cdecl iswspace(wint_t _C); | |
| 131 | _CRTIMP int __cdecl iswpunct(wint_t _C); | |
| 132 | _CRTIMP int __cdecl iswalnum(wint_t _C); | |
| 133 | _CRTIMP int __cdecl iswprint(wint_t _C); | |
| 134 | _CRTIMP int __cdecl iswgraph(wint_t _C); | |
| 135 | _CRTIMP int __cdecl iswcntrl(wint_t _C); | |
| 136 | _CRTIMP int __cdecl iswascii(wint_t _C); | |
| 135 | 137 | #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP |
| 136 | int __cdecl isleadbyte(int _C); | |
| 138 | _CRTIMP int __cdecl isleadbyte(int _C); | |
| 137 | 139 | #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */ |
| 138 | wint_t __cdecl towupper(wint_t _C); | |
| 139 | wint_t __cdecl towlower(wint_t _C); | |
| 140 | int __cdecl iswctype(wint_t _C,wctype_t _Type); | |
| 141 | #if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x700 && _WIN32_WINNT >= 0x0600) | |
| 142 | /* These are available since msvcr80.dll, and in msvcrt.dll since Vista. */ | |
| 140 | _CRTIMP wint_t __cdecl towupper(wint_t _C); | |
| 141 | _CRTIMP wint_t __cdecl towlower(wint_t _C); | |
| 142 | _CRTIMP int __cdecl iswctype(wint_t _C,wctype_t _Type); | |
| 143 | #if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x600 && _WIN32_WINNT >= 0x0600) | |
| 144 | /* These are available since msvcr80.dll (__MSVCRT_VERSION__ >= 0x800), and in | |
| 145 | * msvcrt.dll (__MSVCRT_VERSION__ == 0x600) since Vista (_WIN32_WINNT >= 0x0600). */ | |
| 143 | 146 | _CRTIMP int __cdecl _iswalpha_l(wint_t _C,_locale_t _Locale); |
| 144 | 147 | _CRTIMP int __cdecl _iswupper_l(wint_t _C,_locale_t _Locale); |
| 145 | 148 | _CRTIMP int __cdecl _iswlower_l(wint_t _C,_locale_t _Locale); |
| ... | ... | @@ -166,12 +169,15 @@ int __cdecl isblank(int _C); |
| 166 | 169 | _CRTIMP int __cdecl _iswcsym_l(wint_t _C,_locale_t _Locale); |
| 167 | 170 | #endif |
| 168 | 171 | #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 | 173 | #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */ |
| 171 | 174 | |
| 172 | #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) || defined (__cplusplus) | |
| 173 | int __cdecl iswblank(wint_t _C); | |
| 174 | #endif | |
| 175 | #if __MSVCRT_VERSION__ >= 0xC00 | |
| 176 | _CRTIMP int __cdecl iswblank(wint_t _C); | |
| 177 | _CRTIMP int __cdecl _iswblank_l(wint_t _C,_locale_t _Locale); | |
| 178 | #else | |
| 179 | int __cdecl iswblank(wint_t _C); | |
| 180 | #endif /* msvcr120 */ | |
| 175 | 181 | #endif |
| 176 | 182 | |
| 177 | 183 | #ifndef _CTYPE_DISABLE_MACROS |
| ... | ... | @@ -225,7 +231,8 @@ _CRTIMP int __cdecl ___mb_cur_max_func(void); |
| 225 | 231 | #define iswgraph(_c) (iswctype(_c,_PUNCT|_ALPHA|_DIGIT)) |
| 226 | 232 | #define iswcntrl(_c) (iswctype(_c,_CONTROL)) |
| 227 | 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 | 236 | # define _iswalpha_l(_c,_p) (_iswctype_l(_c,_ALPHA,_p)) |
| 230 | 237 | # define _iswupper_l(_c,_p) (_iswctype_l(_c,_UPPER,_p)) |
| 231 | 238 | # define _iswlower_l(_c,_p) (_iswctype_l(_c,_LOWER,_p)) |
| ... | ... | @@ -238,7 +245,10 @@ _CRTIMP int __cdecl ___mb_cur_max_func(void); |
| 238 | 245 | # define _iswgraph_l(_c,_p) (_iswctype_l(_c,_PUNCT|_ALPHA|_DIGIT,_p)) |
| 239 | 246 | # define _iswcntrl_l(_c,_p) (_iswctype_l(_c,_CONTROL,_p)) |
| 240 | 247 | #endif /* __MSVCRT_VERSION__ >= 0x800 */ |
| 248 | #if __MSVCRT_VERSION__ >= 0xC00 | |
| 249 | #define _iswblank_l(_c,_p) (_iswctype_l(_c,_BLANK,_p) || ((_c)=='\t')) | |
| 241 | 250 | #endif |
| 251 | #endif /* __cplusplus */ | |
| 242 | 252 | #endif |
| 243 | 253 | |
| 244 | 254 | #define __iscsymf(_c) (isalpha(_c) || ((_c)=='_')) |
| ... | ... | @@ -253,10 +263,10 @@ _CRTIMP int __cdecl ___mb_cur_max_func(void); |
| 253 | 263 | |
| 254 | 264 | #ifndef	NO_OLDNAMES |
| 255 | 265 | #ifndef _CTYPE_DEFINED |
| 256 | int __cdecl isascii(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005; | |
| 257 | int __cdecl toascii(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005; | |
| 258 | int __cdecl iscsymf(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005; | |
| 259 | int __cdecl iscsym(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005; | |
| 266 | _CRTIMP int __cdecl isascii(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005; | |
| 267 | _CRTIMP int __cdecl toascii(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005; | |
| 268 | _CRTIMP int __cdecl iscsymf(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005; | |
| 269 | _CRTIMP int __cdecl iscsym(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005; | |
| 260 | 270 | #else |
| 261 | 271 | #define isascii __isascii |
| 262 | 272 | #define toascii __toascii |
lib/libc/include/any-windows-any/d3d10.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d10_1.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d10effect.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d10sdklayers.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d10shader.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d11.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d11_1.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d11_2.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d11_3.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d11_4.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d11on12.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d11sdklayers.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d12.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d12sdklayers.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d12shader.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3d12video.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/d3dcommon.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dbgprop.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dcommon.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dcompanimation.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/ddstream.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/devicetopology.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dimm.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dinputd.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/direct.h+33| ... | ... | @@ -25,10 +25,23 @@ extern "C" { |
| 25 | 25 | }; |
| 26 | 26 | #endif |
| 27 | 27 | |
| 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 | 36 | _CRTIMP char *__cdecl _getcwd(char *_DstBuf,int _SizeInBytes); |
| 29 | 37 | _CRTIMP char *__cdecl _getdcwd(int _Drive,char *_DstBuf,int _SizeInBytes); |
| 30 | 38 | #if __MSVCRT_VERSION__ >= 0x800 |
| 31 | 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 | 45 | #endif |
| 33 | 46 | _CRTIMP int __cdecl _chdir(const char *_Path); |
| 34 | 47 | _CRTIMP int __cdecl _mkdir(const char *_Path); |
| ... | ... | @@ -46,10 +59,23 @@ extern "C" { |
| 46 | 59 | |
| 47 | 60 | #ifndef _WDIRECT_DEFINED |
| 48 | 61 | #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 | 70 | _CRTIMP wchar_t *__cdecl _wgetcwd(wchar_t *_DstBuf,int _SizeInWords); |
| 50 | 71 | _CRTIMP wchar_t *__cdecl _wgetdcwd(int _Drive,wchar_t *_DstBuf,int _SizeInWords); |
| 51 | 72 | #if __MSVCRT_VERSION__ >= 0x800 |
| 52 | 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 | 79 | #endif |
| 54 | 80 | _CRTIMP int __cdecl _wchdir(const wchar_t *_Path); |
| 55 | 81 | _CRTIMP int __cdecl _wmkdir(const wchar_t *_Path); |
| ... | ... | @@ -60,7 +86,14 @@ extern "C" { |
| 60 | 86 | |
| 61 | 87 | #define diskfree_t _diskfree_t |
| 62 | 88 | |
| 89 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 90 | #pragma push_macro("getcwd") | |
| 91 | #undef getcwd | |
| 92 | #endif | |
| 63 | 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 | 97 | int __cdecl chdir(const char *_Path) __MINGW_ATTRIB_DEPRECATED_MSVC2005; |
| 65 | 98 | int __cdecl mkdir(const char *_Path) __MINGW_ATTRIB_DEPRECATED_MSVC2005; |
| 66 | 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 | /*** 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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dispex.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dmodshow.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/docobj.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/docobjectservice.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/documenttarget.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/downloadmgr.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/drmexternals.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dvdif.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dwrite.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dwrite_1.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dwrite_2.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dwrite_3.h+1053-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
| ... | ... | @@ -378,6 +378,30 @@ interface IDWriteFactory7; |
| 378 | 378 | #endif /* __cplusplus */ |
| 379 | 379 | #endif |
| 380 | 380 | |
| 381 | #ifndef __IDWriteFactory8_FWD_DEFINED__ | |
| 382 | #define __IDWriteFactory8_FWD_DEFINED__ | |
| 383 | typedef interface IDWriteFactory8 IDWriteFactory8; | |
| 384 | #ifdef __cplusplus | |
| 385 | interface IDWriteFactory8; | |
| 386 | #endif /* __cplusplus */ | |
| 387 | #endif | |
| 388 | ||
| 389 | #ifndef __IDWriteBitmapRenderTarget2_FWD_DEFINED__ | |
| 390 | #define __IDWriteBitmapRenderTarget2_FWD_DEFINED__ | |
| 391 | typedef interface IDWriteBitmapRenderTarget2 IDWriteBitmapRenderTarget2; | |
| 392 | #ifdef __cplusplus | |
| 393 | interface IDWriteBitmapRenderTarget2; | |
| 394 | #endif /* __cplusplus */ | |
| 395 | #endif | |
| 396 | ||
| 397 | #ifndef __IDWriteBitmapRenderTarget3_FWD_DEFINED__ | |
| 398 | #define __IDWriteBitmapRenderTarget3_FWD_DEFINED__ | |
| 399 | typedef interface IDWriteBitmapRenderTarget3 IDWriteBitmapRenderTarget3; | |
| 400 | #ifdef __cplusplus | |
| 401 | interface IDWriteBitmapRenderTarget3; | |
| 402 | #endif /* __cplusplus */ | |
| 403 | #endif | |
| 404 | ||
| 381 | 405 | /* Headers for imported files */ |
| 382 | 406 | |
| 383 | 407 | #include <dwrite_2.h> |
| ... | ... | @@ -571,11 +595,14 @@ typedef enum DWRITE_PAINT_TYPE { |
| 571 | 595 | DWRITE_PAINT_TYPE_TRANSFORM = 9, |
| 572 | 596 | DWRITE_PAINT_TYPE_COMPOSITE = 10 |
| 573 | 597 | } DWRITE_PAINT_TYPE; |
| 598 | #ifndef DWRITE_PAINT_FEATURE_LEVEL_DEFINED | |
| 599 | #define DWRITE_PAINT_FEATURE_LEVEL_DEFINED | |
| 574 | 600 | typedef enum DWRITE_PAINT_FEATURE_LEVEL { |
| 575 | 601 | DWRITE_PAINT_FEATURE_LEVEL_NONE = 0, |
| 576 | 602 | DWRITE_PAINT_FEATURE_LEVEL_COLR_V0 = 1, |
| 577 | 603 | DWRITE_PAINT_FEATURE_LEVEL_COLR_V1 = 2 |
| 578 | 604 | } DWRITE_PAINT_FEATURE_LEVEL; |
| 605 | #endif /* DWRITE_PAINT_FEATURE_LEVEL_DEFINED */ | |
| 579 | 606 | typedef enum DWRITE_PAINT_ATTRIBUTES { |
| 580 | 607 | DWRITE_PAINT_ATTRIBUTES_NONE = 0, |
| 581 | 608 | DWRITE_PAINT_ATTRIBUTES_USES_PALETTE = 0x1, |
| ... | ... | @@ -14125,6 +14152,1031 @@ static inline HRESULT IDWriteFactory7_GetSystemFontCollection(IDWriteFactory7* T |
| 14125 | 14152 | |
| 14126 | 14153 | #endif /* __IDWriteFactory7_INTERFACE_DEFINED__ */ |
| 14127 | 14154 | |
| 14155 | /***************************************************************************** | |
| 14156 | * IDWriteFactory8 interface | |
| 14157 | */ | |
| 14158 | #ifndef __IDWriteFactory8_INTERFACE_DEFINED__ | |
| 14159 | #define __IDWriteFactory8_INTERFACE_DEFINED__ | |
| 14160 | ||
| 14161 | DEFINE_GUID(IID_IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98); | |
| 14162 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 14163 | MIDL_INTERFACE("ee0a7fb5-def4-4c23-a454-c9c7dc878398") | |
| 14164 | IDWriteFactory8 : 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 | |
| 14182 | typedef 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 | ||
| 14582 | interface 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 ***/ | |
| 14641 | static inline HRESULT IDWriteFactory8_QueryInterface(IDWriteFactory8* This,REFIID riid,void **ppvObject) { | |
| 14642 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 14643 | } | |
| 14644 | static inline ULONG IDWriteFactory8_AddRef(IDWriteFactory8* This) { | |
| 14645 | return This->lpVtbl->AddRef(This); | |
| 14646 | } | |
| 14647 | static inline ULONG IDWriteFactory8_Release(IDWriteFactory8* This) { | |
| 14648 | return This->lpVtbl->Release(This); | |
| 14649 | } | |
| 14650 | /*** IDWriteFactory methods ***/ | |
| 14651 | static 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 | } | |
| 14654 | static inline HRESULT IDWriteFactory8_RegisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) { | |
| 14655 | return This->lpVtbl->RegisterFontCollectionLoader(This,loader); | |
| 14656 | } | |
| 14657 | static inline HRESULT IDWriteFactory8_UnregisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) { | |
| 14658 | return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); | |
| 14659 | } | |
| 14660 | static 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 | } | |
| 14663 | static 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 | } | |
| 14666 | static inline HRESULT IDWriteFactory8_CreateFontFace(IDWriteFactory8* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { | |
| 14667 | return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); | |
| 14668 | } | |
| 14669 | static inline HRESULT IDWriteFactory8_CreateRenderingParams(IDWriteFactory8* This,IDWriteRenderingParams **params) { | |
| 14670 | return This->lpVtbl->CreateRenderingParams(This,params); | |
| 14671 | } | |
| 14672 | static inline HRESULT IDWriteFactory8_CreateMonitorRenderingParams(IDWriteFactory8* This,HMONITOR monitor,IDWriteRenderingParams **params) { | |
| 14673 | return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); | |
| 14674 | } | |
| 14675 | static inline HRESULT IDWriteFactory8_RegisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) { | |
| 14676 | return This->lpVtbl->RegisterFontFileLoader(This,loader); | |
| 14677 | } | |
| 14678 | static inline HRESULT IDWriteFactory8_UnregisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) { | |
| 14679 | return This->lpVtbl->UnregisterFontFileLoader(This,loader); | |
| 14680 | } | |
| 14681 | static inline HRESULT IDWriteFactory8_CreateTypography(IDWriteFactory8* This,IDWriteTypography **typography) { | |
| 14682 | return This->lpVtbl->CreateTypography(This,typography); | |
| 14683 | } | |
| 14684 | static inline HRESULT IDWriteFactory8_GetGdiInterop(IDWriteFactory8* This,IDWriteGdiInterop **gdi_interop) { | |
| 14685 | return This->lpVtbl->GetGdiInterop(This,gdi_interop); | |
| 14686 | } | |
| 14687 | static 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 | } | |
| 14690 | static inline HRESULT IDWriteFactory8_CreateGdiCompatibleTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { | |
| 14691 | return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); | |
| 14692 | } | |
| 14693 | static inline HRESULT IDWriteFactory8_CreateEllipsisTrimmingSign(IDWriteFactory8* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { | |
| 14694 | return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); | |
| 14695 | } | |
| 14696 | static inline HRESULT IDWriteFactory8_CreateTextAnalyzer(IDWriteFactory8* This,IDWriteTextAnalyzer **analyzer) { | |
| 14697 | return This->lpVtbl->CreateTextAnalyzer(This,analyzer); | |
| 14698 | } | |
| 14699 | static 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 ***/ | |
| 14703 | static 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 ***/ | |
| 14707 | static inline HRESULT IDWriteFactory8_GetSystemFontFallback(IDWriteFactory8* This,IDWriteFontFallback **fallback) { | |
| 14708 | return This->lpVtbl->GetSystemFontFallback(This,fallback); | |
| 14709 | } | |
| 14710 | static inline HRESULT IDWriteFactory8_CreateFontFallbackBuilder(IDWriteFactory8* This,IDWriteFontFallbackBuilder **fallbackbuilder) { | |
| 14711 | return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); | |
| 14712 | } | |
| 14713 | /*** IDWriteFactory3 methods ***/ | |
| 14714 | static inline HRESULT IDWriteFactory8_CreateGlyphRunAnalysis(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { | |
| 14715 | return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); | |
| 14716 | } | |
| 14717 | static inline HRESULT IDWriteFactory8_CreateCustomRenderingParams(IDWriteFactory8* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { | |
| 14718 | return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); | |
| 14719 | } | |
| 14720 | static 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 | } | |
| 14723 | static inline HRESULT IDWriteFactory8_GetFontDownloadQueue(IDWriteFactory8* This,IDWriteFontDownloadQueue **queue) { | |
| 14724 | return This->lpVtbl->GetFontDownloadQueue(This,queue); | |
| 14725 | } | |
| 14726 | /*** IDWriteFactory4 methods ***/ | |
| 14727 | static 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 | } | |
| 14730 | static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { | |
| 14731 | return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); | |
| 14732 | } | |
| 14733 | /*** IDWriteFactory5 methods ***/ | |
| 14734 | static inline HRESULT IDWriteFactory8_CreateInMemoryFontFileLoader(IDWriteFactory8* This,IDWriteInMemoryFontFileLoader **loader) { | |
| 14735 | return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader); | |
| 14736 | } | |
| 14737 | static 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 | } | |
| 14740 | static inline DWRITE_CONTAINER_TYPE IDWriteFactory8_AnalyzeContainerType(IDWriteFactory8* This,const void *data,UINT32 data_size) { | |
| 14741 | return This->lpVtbl->AnalyzeContainerType(This,data,data_size); | |
| 14742 | } | |
| 14743 | static 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 ***/ | |
| 14747 | static inline HRESULT IDWriteFactory8_CreateFontFaceReference(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) { | |
| 14748 | return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref); | |
| 14749 | } | |
| 14750 | static inline HRESULT IDWriteFactory8_CreateFontResource(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) { | |
| 14751 | return This->lpVtbl->CreateFontResource(This,file,face_index,resource); | |
| 14752 | } | |
| 14753 | static 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 | } | |
| 14756 | static inline HRESULT IDWriteFactory8_CreateFontSetBuilder(IDWriteFactory8* This,IDWriteFontSetBuilder2 **builder) { | |
| 14757 | return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder); | |
| 14758 | } | |
| 14759 | static inline HRESULT IDWriteFactory8_CreateTextFormat(IDWriteFactory8* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) { | |
| 14760 | return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format); | |
| 14761 | } | |
| 14762 | /*** IDWriteFactory7 methods ***/ | |
| 14763 | static inline HRESULT IDWriteFactory8_GetSystemFontSet(IDWriteFactory8* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) { | |
| 14764 | return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset); | |
| 14765 | } | |
| 14766 | static 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 ***/ | |
| 14770 | static inline HRESULT IDWriteFactory8_TranslateColorGlyphRun(IDWriteFactory8* This,D2D1_POINT_2F origin,const DWRITE_GLYPH_RUN *glyph_run,const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,DWRITE_GLYPH_IMAGE_FORMATS image_formats,DWRITE_PAINT_FEATURE_LEVEL feature_level,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *world_and_dpi_transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator1 **enumerator) { | |
| 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 | ||
| 14781 | typedef 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 | ||
| 14792 | DEFINE_GUID(IID_IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95); | |
| 14793 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 14794 | MIDL_INTERFACE("c553a742-fc01-44da-a66e-b8b9ed6c3995") | |
| 14795 | IDWriteBitmapRenderTarget2 : 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 | |
| 14805 | typedef 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 | ||
| 14874 | interface 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 ***/ | |
| 14900 | static inline HRESULT IDWriteBitmapRenderTarget2_QueryInterface(IDWriteBitmapRenderTarget2* This,REFIID riid,void **ppvObject) { | |
| 14901 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 14902 | } | |
| 14903 | static inline ULONG IDWriteBitmapRenderTarget2_AddRef(IDWriteBitmapRenderTarget2* This) { | |
| 14904 | return This->lpVtbl->AddRef(This); | |
| 14905 | } | |
| 14906 | static inline ULONG IDWriteBitmapRenderTarget2_Release(IDWriteBitmapRenderTarget2* This) { | |
| 14907 | return This->lpVtbl->Release(This); | |
| 14908 | } | |
| 14909 | /*** IDWriteBitmapRenderTarget methods ***/ | |
| 14910 | static inline HRESULT IDWriteBitmapRenderTarget2_DrawGlyphRun(IDWriteBitmapRenderTarget2* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) { | |
| 14911 | return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect); | |
| 14912 | } | |
| 14913 | static inline HDC IDWriteBitmapRenderTarget2_GetMemoryDC(IDWriteBitmapRenderTarget2* This) { | |
| 14914 | return This->lpVtbl->GetMemoryDC(This); | |
| 14915 | } | |
| 14916 | static inline FLOAT IDWriteBitmapRenderTarget2_GetPixelsPerDip(IDWriteBitmapRenderTarget2* This) { | |
| 14917 | return This->lpVtbl->GetPixelsPerDip(This); | |
| 14918 | } | |
| 14919 | static inline HRESULT IDWriteBitmapRenderTarget2_SetPixelsPerDip(IDWriteBitmapRenderTarget2* This,FLOAT pixels_per_dip) { | |
| 14920 | return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip); | |
| 14921 | } | |
| 14922 | static inline HRESULT IDWriteBitmapRenderTarget2_GetCurrentTransform(IDWriteBitmapRenderTarget2* This,DWRITE_MATRIX *transform) { | |
| 14923 | return This->lpVtbl->GetCurrentTransform(This,transform); | |
| 14924 | } | |
| 14925 | static inline HRESULT IDWriteBitmapRenderTarget2_SetCurrentTransform(IDWriteBitmapRenderTarget2* This,const DWRITE_MATRIX *transform) { | |
| 14926 | return This->lpVtbl->SetCurrentTransform(This,transform); | |
| 14927 | } | |
| 14928 | static inline HRESULT IDWriteBitmapRenderTarget2_GetSize(IDWriteBitmapRenderTarget2* This,SIZE *size) { | |
| 14929 | return This->lpVtbl->GetSize(This,size); | |
| 14930 | } | |
| 14931 | static inline HRESULT IDWriteBitmapRenderTarget2_Resize(IDWriteBitmapRenderTarget2* This,UINT32 width,UINT32 height) { | |
| 14932 | return This->lpVtbl->Resize(This,width,height); | |
| 14933 | } | |
| 14934 | /*** IDWriteBitmapRenderTarget1 methods ***/ | |
| 14935 | static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget2_GetTextAntialiasMode(IDWriteBitmapRenderTarget2* This) { | |
| 14936 | return This->lpVtbl->GetTextAntialiasMode(This); | |
| 14937 | } | |
| 14938 | static inline HRESULT IDWriteBitmapRenderTarget2_SetTextAntialiasMode(IDWriteBitmapRenderTarget2* This,DWRITE_TEXT_ANTIALIAS_MODE mode) { | |
| 14939 | return This->lpVtbl->SetTextAntialiasMode(This,mode); | |
| 14940 | } | |
| 14941 | /*** IDWriteBitmapRenderTarget2 methods ***/ | |
| 14942 | static 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 | ||
| 14959 | DEFINE_GUID(IID_IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38); | |
| 14960 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 14961 | MIDL_INTERFACE("aeec37db-c337-40f1-8e2a-9a41b167b238") | |
| 14962 | IDWriteBitmapRenderTarget3 : 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 | |
| 14992 | typedef 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 | ||
| 15087 | interface 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 ***/ | |
| 15117 | static inline HRESULT IDWriteBitmapRenderTarget3_QueryInterface(IDWriteBitmapRenderTarget3* This,REFIID riid,void **ppvObject) { | |
| 15118 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 15119 | } | |
| 15120 | static inline ULONG IDWriteBitmapRenderTarget3_AddRef(IDWriteBitmapRenderTarget3* This) { | |
| 15121 | return This->lpVtbl->AddRef(This); | |
| 15122 | } | |
| 15123 | static inline ULONG IDWriteBitmapRenderTarget3_Release(IDWriteBitmapRenderTarget3* This) { | |
| 15124 | return This->lpVtbl->Release(This); | |
| 15125 | } | |
| 15126 | /*** IDWriteBitmapRenderTarget methods ***/ | |
| 15127 | static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) { | |
| 15128 | return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect); | |
| 15129 | } | |
| 15130 | static inline HDC IDWriteBitmapRenderTarget3_GetMemoryDC(IDWriteBitmapRenderTarget3* This) { | |
| 15131 | return This->lpVtbl->GetMemoryDC(This); | |
| 15132 | } | |
| 15133 | static inline FLOAT IDWriteBitmapRenderTarget3_GetPixelsPerDip(IDWriteBitmapRenderTarget3* This) { | |
| 15134 | return This->lpVtbl->GetPixelsPerDip(This); | |
| 15135 | } | |
| 15136 | static inline HRESULT IDWriteBitmapRenderTarget3_SetPixelsPerDip(IDWriteBitmapRenderTarget3* This,FLOAT pixels_per_dip) { | |
| 15137 | return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip); | |
| 15138 | } | |
| 15139 | static inline HRESULT IDWriteBitmapRenderTarget3_GetCurrentTransform(IDWriteBitmapRenderTarget3* This,DWRITE_MATRIX *transform) { | |
| 15140 | return This->lpVtbl->GetCurrentTransform(This,transform); | |
| 15141 | } | |
| 15142 | static inline HRESULT IDWriteBitmapRenderTarget3_SetCurrentTransform(IDWriteBitmapRenderTarget3* This,const DWRITE_MATRIX *transform) { | |
| 15143 | return This->lpVtbl->SetCurrentTransform(This,transform); | |
| 15144 | } | |
| 15145 | static inline HRESULT IDWriteBitmapRenderTarget3_GetSize(IDWriteBitmapRenderTarget3* This,SIZE *size) { | |
| 15146 | return This->lpVtbl->GetSize(This,size); | |
| 15147 | } | |
| 15148 | static inline HRESULT IDWriteBitmapRenderTarget3_Resize(IDWriteBitmapRenderTarget3* This,UINT32 width,UINT32 height) { | |
| 15149 | return This->lpVtbl->Resize(This,width,height); | |
| 15150 | } | |
| 15151 | /*** IDWriteBitmapRenderTarget1 methods ***/ | |
| 15152 | static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget3_GetTextAntialiasMode(IDWriteBitmapRenderTarget3* This) { | |
| 15153 | return This->lpVtbl->GetTextAntialiasMode(This); | |
| 15154 | } | |
| 15155 | static inline HRESULT IDWriteBitmapRenderTarget3_SetTextAntialiasMode(IDWriteBitmapRenderTarget3* This,DWRITE_TEXT_ANTIALIAS_MODE mode) { | |
| 15156 | return This->lpVtbl->SetTextAntialiasMode(This,mode); | |
| 15157 | } | |
| 15158 | /*** IDWriteBitmapRenderTarget2 methods ***/ | |
| 15159 | static inline HRESULT IDWriteBitmapRenderTarget3_GetBitmapData(IDWriteBitmapRenderTarget3* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) { | |
| 15160 | return This->lpVtbl->GetBitmapData(This,bitmap_data); | |
| 15161 | } | |
| 15162 | /*** IDWriteBitmapRenderTarget3 methods ***/ | |
| 15163 | static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(IDWriteBitmapRenderTarget3* This) { | |
| 15164 | return This->lpVtbl->GetPaintFeatureLevel(This); | |
| 15165 | } | |
| 15166 | static inline HRESULT IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,DWRITE_GLYPH_IMAGE_FORMATS image_format,COLORREF text_color,UINT32 palette_index,RECT *black_box) { | |
| 15167 | return This->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box); | |
| 15168 | } | |
| 15169 | static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,IDWriteRenderingParams *params,COLORREF text_color,UINT32 palette_index,RECT *black_box) { | |
| 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 | 15180 | /* Begin additional prototypes for all interfaces */ |
| 14129 | 15181 | |
| 14130 | 15182 |
lib/libc/include/any-windows-any/dxgi.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dxgi1_2.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dxgi1_3.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dxgi1_4.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dxgi1_5.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dxgi1_6.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dxgicommon.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dxgidebug.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dxgiformat.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dxgitype.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dxva2api.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/dxvahd.h+2-2| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
| ... | ... | @@ -415,7 +415,7 @@ typedef struct _DXVAHDSW_CALLBACKS { |
| 415 | 415 | PDXVAHDSW_DestroyVideoProcessor DestroyVideoProcessor; |
| 416 | 416 | } DXVAHDSW_CALLBACKS; |
| 417 | 417 | |
| 418 | HRESULT DXVAHD_CreateDevice(IDirect3DDevice9Ex *pD3DDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,PDXVAHDSW_Plugin pPlugin,IDXVAHD_Device **ppDevice); | |
| 418 | HRESULT WINAPI DXVAHD_CreateDevice(IDirect3DDevice9Ex *pD3DDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,PDXVAHDSW_Plugin pPlugin,IDXVAHD_Device **ppDevice); | |
| 419 | 419 | |
| 420 | 420 | /***************************************************************************** |
| 421 | 421 | * IDXVAHD_Device interface |
lib/libc/include/any-windows-any/endpointvolume.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/evr.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/evr9.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/exdisp.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/fibersapi.h+5| ... | ... | @@ -25,6 +25,11 @@ extern "C" { |
| 25 | 25 | WINBASEAPI WINBOOL WINAPI FlsFree (DWORD dwFlsIndex); |
| 26 | 26 | WINBASEAPI WINBOOL WINAPI IsThreadAFiber (VOID); |
| 27 | 27 | #endif |
| 28 | ||
| 29 | #if (_WIN32_WINNT >= _WIN32_WINNT_WIN10) | |
| 30 | WINBASEAPI PVOID WINAPI FlsGetValue2(DWORD dwTlsIndex); | |
| 31 | #endif | |
| 32 | ||
| 28 | 33 | #endif |
| 29 | 34 | |
| 30 | 35 | #ifdef __cplusplus |
lib/libc/include/any-windows-any/filter.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/fsrm.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/fsrmenums.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/fsrmquota.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/fsrmreports.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/fsrmscreen.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/fusion.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/fwptypes.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/hstring.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/icftypes.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/icodecapi.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/iketypes.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/inputpaneinterop.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/inputscope.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/inspectable.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/intrin.h+10-10| ... | ... | @@ -55,7 +55,7 @@ |
| 55 | 55 | #endif |
| 56 | 56 | |
| 57 | 57 | #if defined(__GNUC__) && \ |
| 58 | (defined(__i386__) || defined(__x86_64__)) | |
| 58 | (defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__))) | |
| 59 | 59 | #ifndef _MM_MALLOC_H_INCLUDED |
| 60 | 60 | #include <stdlib.h> |
| 61 | 61 | #include <errno.h> |
| ... | ... | @@ -103,7 +103,7 @@ typedef union __m128i { char v[16]; } __m128i; |
| 103 | 103 | #endif |
| 104 | 104 | #endif |
| 105 | 105 | |
| 106 | #if (defined(_X86_) || defined(__x86_64)) | |
| 106 | #if (defined(_X86_) || (defined(__x86_64) && !defined(__arm64ec__))) | |
| 107 | 107 | |
| 108 | 108 | #if defined(__MMX__) || defined(__MINGW_FORCE_SYS_INTRINS) |
| 109 | 109 | #if defined(__cplusplus) |
| ... | ... | @@ -177,7 +177,7 @@ extern "C" { |
| 177 | 177 | #define __MACHINEIA32 __MACHINEZ |
| 178 | 178 | #endif |
| 179 | 179 | |
| 180 | #if !(defined(_X86_) || defined(__x86_64) || defined(__ia64__)) | |
| 180 | #if !(defined(_X86_) || defined(__x86_64) || defined(__ia64__)) || defined(__arm64ec__) | |
| 181 | 181 | #undef __MACHINEIW64 |
| 182 | 182 | #define __MACHINEIW64 __MACHINEZ |
| 183 | 183 | #endif |
| ... | ... | @@ -187,17 +187,17 @@ extern "C" { |
| 187 | 187 | #define __MACHINEIA64 __MACHINEZ |
| 188 | 188 | #endif |
| 189 | 189 | |
| 190 | #if !(defined(__ia64__) || defined(__x86_64)) | |
| 190 | #if !(defined(__ia64__) || defined(__x86_64)) || defined(__arm64ec__) | |
| 191 | 191 | #undef __MACHINEW64 |
| 192 | 192 | #define __MACHINEW64 __MACHINEZ |
| 193 | 193 | #endif |
| 194 | 194 | |
| 195 | #if !(defined(_X86_) || defined(__x86_64)) | |
| 195 | #if !(defined(_X86_) || defined(__x86_64)) || defined(__arm64ec__) | |
| 196 | 196 | #undef __MACHINEI |
| 197 | 197 | #define __MACHINEI __MACHINEZ |
| 198 | 198 | #endif |
| 199 | 199 | |
| 200 | #if !(defined(_X86_) || defined(__x86_64)) | |
| 200 | #if !(defined(_X86_) || defined(__x86_64)) || defined(__arm64ec__) | |
| 201 | 201 | #undef __MACHINEX86X |
| 202 | 202 | #define __MACHINEX86X __MACHINEZ |
| 203 | 203 | #endif |
| ... | ... | @@ -207,7 +207,7 @@ extern "C" { |
| 207 | 207 | #define __MACHINEX86X_NOX64 __MACHINEZ |
| 208 | 208 | #endif |
| 209 | 209 | |
| 210 | #if !(defined(_X86_) || defined(__x86_64)) || defined(__ia64__) | |
| 210 | #if !(defined(_X86_) || defined(__x86_64)) || defined(__ia64__) || defined(__arm64ec__) | |
| 211 | 211 | #undef __MACHINEX86X_NOIA64 |
| 212 | 212 | #define __MACHINEX86X_NOIA64 __MACHINEZ |
| 213 | 213 | #endif |
| ... | ... | @@ -228,17 +228,17 @@ extern "C" { |
| 228 | 228 | #define __MACHINECC __MACHINEZ |
| 229 | 229 | #endif |
| 230 | 230 | |
| 231 | #if !(defined(__aarch64__)) | |
| 231 | #if !(defined(__aarch64__) || defined(__arm64ec__)) | |
| 232 | 232 | #undef __MACHINEARM64 |
| 233 | 233 | #define __MACHINEARM64 __MACHINEZ |
| 234 | 234 | #endif |
| 235 | 235 | |
| 236 | #if !(defined(__arm__) || defined(__aarch64__)) | |
| 236 | #if !(defined(__arm__) || defined(__aarch64__) || defined(__arm64ec__)) | |
| 237 | 237 | #undef __MACHINEARM_ARM64 |
| 238 | 238 | #define __MACHINEARM_ARM64 __MACHINEZ |
| 239 | 239 | #endif |
| 240 | 240 | |
| 241 | #if !(defined(__x86_64)) | |
| 241 | #if !(defined(__x86_64)) || defined(__arm64ec__) | |
| 242 | 242 | #undef __MACHINEX64 |
| 243 | 243 | #define __MACHINEX64 __MACHINEZ |
| 244 | 244 | #endif |
lib/libc/include/any-windows-any/io.h+15| ... | ... | @@ -24,7 +24,15 @@ |
| 24 | 24 | extern "C" { |
| 25 | 25 | #endif |
| 26 | 26 | |
| 27 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 28 | #pragma push_macro("_getcwd") | |
| 29 | #undef _getcwd | |
| 30 | #endif | |
| 27 | 31 | _CRTIMP char* __cdecl _getcwd (char*, int); |
| 32 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 33 | #pragma pop_macro("_getcwd") | |
| 34 | #endif | |
| 35 | ||
| 28 | 36 | #ifndef _FSIZE_T_DEFINED |
| 29 | 37 | typedef unsigned long _fsize_t; |
| 30 | 38 | #define _FSIZE_T_DEFINED |
| ... | ... | @@ -278,7 +286,14 @@ _CRTIMP char* __cdecl _getcwd (char*, int); |
| 278 | 286 | #ifndef NO_OLDNAMES |
| 279 | 287 | #ifndef _UWIN |
| 280 | 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 | 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 | 297 | int __cdecl mkdir (const char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005; |
| 283 | 298 | char *__cdecl mktemp(char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005; |
| 284 | 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 | /*** 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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/locationapi.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/malloc.h+74-1| ... | ... | @@ -21,7 +21,13 @@ extern "C" { |
| 21 | 21 | #endif |
| 22 | 22 | |
| 23 | 23 | #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 | 31 | #define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr)] |
| 26 | 32 | #else |
| 27 | 33 | #define _STATIC_ASSERT(expr) extern void __static_assert_t(int [(expr)?1:-1]) |
| ... | ... | @@ -55,6 +61,36 @@ extern "C" { |
| 55 | 61 | |
| 56 | 62 | #ifndef _CRT_ALLOCATION_DEFINED |
| 57 | 63 | #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 | 94 | void *__cdecl calloc(size_t _NumOfElements,size_t _SizeOfElements); |
| 59 | 95 | void __cdecl free(void *_Memory); |
| 60 | 96 | void *__cdecl malloc(size_t _Size); |
| ... | ... | @@ -72,6 +108,23 @@ extern "C" { |
| 72 | 108 | _CRTIMP void *__cdecl _aligned_offset_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment,size_t _Offset); |
| 73 | 109 | _CRTIMP size_t __cdecl _aligned_msize(void *_Memory,size_t _Alignment,size_t _Offset); |
| 74 | 110 | # 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 | 128 | #endif |
| 76 | 129 | |
| 77 | 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 | 145 | #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */ |
| 93 | 146 | _CRTIMP unsigned long __cdecl _set_malloc_crt_max_wait(unsigned long _NewValue); |
| 94 | 147 | |
| 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 | 154 | _CRTIMP void *__cdecl _expand(void *_Memory,size_t _NewSize); |
| 96 | 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 | 161 | #ifdef __GNUC__ |
| 98 | 162 | #undef _alloca |
| 99 | 163 | #define _alloca(x) __builtin_alloca((x)) |
| ... | ... | @@ -132,11 +196,20 @@ void * __mingw_aligned_realloc (void *_Memory, size_t _Size, size_t _Offset); |
| 132 | 196 | } |
| 133 | 197 | #endif |
| 134 | 198 | |
| 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 | 206 | #undef _malloca |
| 136 | 207 | #define _malloca(size) \ |
| 137 | 208 | ((((size) + _ALLOCA_S_MARKER_SIZE) <= _ALLOCA_S_THRESHOLD) ? \ |
| 138 | 209 | _MarkAllocaS(_alloca((size) + _ALLOCA_S_MARKER_SIZE),_ALLOCA_S_STACK_MARKER) : \ |
| 139 | 210 | _MarkAllocaS(malloc((size) + _ALLOCA_S_MARKER_SIZE),_ALLOCA_S_HEAP_MARKER)) |
| 211 | #endif | |
| 212 | ||
| 140 | 213 | #undef _FREEA_INLINE |
| 141 | 214 | #define _FREEA_INLINE |
| 142 | 215 |
lib/libc/include/any-windows-any/mapi.h+42| ... | ... | @@ -35,6 +35,15 @@ extern "C" { |
| 35 | 35 | LPVOID lpFileType; |
| 36 | 36 | } MapiFileDesc,*lpMapiFileDesc; |
| 37 | 37 | |
| 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 | 47 | #define MAPI_OLE 0x00000001 |
| 39 | 48 | #define MAPI_OLE_STATIC 0x00000002 |
| 40 | 49 | |
| ... | ... | @@ -55,6 +64,15 @@ extern "C" { |
| 55 | 64 | LPVOID lpEntryID; |
| 56 | 65 | } MapiRecipDesc,*lpMapiRecipDesc; |
| 57 | 66 | |
| 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 | 76 | #ifndef MAPI_ORIG |
| 59 | 77 | #define MAPI_ORIG 0 |
| 60 | 78 | #define MAPI_TO 1 |
| ... | ... | @@ -77,6 +95,21 @@ extern "C" { |
| 77 | 95 | lpMapiFileDesc lpFiles; |
| 78 | 96 | } MapiMessage,*lpMapiMessage; |
| 79 | 97 | |
| 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 | 113 | #define MAPI_UNREAD 0x00000001 |
| 81 | 114 | #define MAPI_RECEIPT_REQUESTED 0x00000002 |
| 82 | 115 | #define MAPI_SENT 0x00000004 |
| ... | ... | @@ -93,6 +126,9 @@ extern "C" { |
| 93 | 126 | #define MAPI_DIALOG 0x00000008 |
| 94 | 127 | #endif |
| 95 | 128 | |
| 129 | #define MAPI_DIALOG_MODELESS (0x00000004 | MAPI_DIALOG) | |
| 130 | #define MAPI_FORCE_UNICODE 0x00040000 | |
| 131 | ||
| 96 | 132 | #define MAPI_UNREAD_ONLY 0x00000020 |
| 97 | 133 | #define MAPI_GUARANTEE_FIFO 0x00000100 |
| 98 | 134 | #define MAPI_LONG_MSGID 0x00004000 |
| ... | ... | @@ -116,6 +152,10 @@ extern "C" { |
| 116 | 152 | typedef MAPISENDMAIL *LPMAPISENDMAIL; |
| 117 | 153 | MAPISENDMAIL MAPISendMail; |
| 118 | 154 | |
| 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 | 159 | typedef ULONG (WINAPI MAPISENDDOCUMENTS)(ULONG_PTR ulUIParam,LPSTR lpszDelimChar,LPSTR lpszFilePaths,LPSTR lpszFileNames,ULONG ulReserved); |
| 120 | 160 | typedef MAPISENDDOCUMENTS *LPMAPISENDDOCUMENTS; |
| 121 | 161 | MAPISENDDOCUMENTS MAPISendDocuments; |
| ... | ... | @@ -183,6 +223,8 @@ extern "C" { |
| 183 | 223 | #define MAPI_E_INVALID_EDITFIELDS 24 |
| 184 | 224 | #define MAPI_E_INVALID_RECIPS 25 |
| 185 | 225 | #define MAPI_E_NOT_SUPPORTED 26 |
| 226 | #define MAPI_E_UNICODE_NOT_SUPPORTED 27 | |
| 227 | #define MAPI_E_ATTACHMENT_TOO_LARGE 28 | |
| 186 | 228 | |
| 187 | 229 | #ifdef MAPIX_H |
| 188 | 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 | 31 | |
| 32 | 32 | #ifndef _MBSTRING_DEFINED |
| 33 | 33 | #define _MBSTRING_DEFINED |
| 34 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 35 | #pragma push_macro("_mbsdup") | |
| 36 | #undef _mbsdup | |
| 37 | #endif | |
| 34 | 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 | 42 | _CRTIMP unsigned int __cdecl _mbbtombc(unsigned int _Ch); |
| 36 | 43 | _CRTIMP unsigned int __cdecl _mbbtombc_l(unsigned int _Ch,_locale_t _Locale); |
| 37 | 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 | /*** 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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/medparam.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/mfcaptureengine.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/mfd3d12.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/mfidl.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/mfmediacapture.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/mfmediaengine.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/mfobjects.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/mfplay.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/mfreadwrite.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/mftransform.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/mmdeviceapi.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/mmstream.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/mscoree.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/msctf.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/mshtmhst.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/mshtml.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/msinkaut.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/msinkaut_i.c+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #include <rpc.h> |
| 4 | 4 | #include <rpcndr.h> |
lib/libc/include/any-windows-any/msopc.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/msxml.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/msxml2.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/msxml6.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/napcertrelyingparty.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/napcommon.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/napenforcementclient.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/napmanagement.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/napprotocol.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/napservermanagement.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/napsystemhealthagent.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/napsystemhealthvalidator.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/naptypes.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/netcfgn.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/netcfgx.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/netfw.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/netlistmgr.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/oaidl.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/objectarray.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/objidl.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/objidlbase.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/ocidl.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/oleacc.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/oleidl.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/optary.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/portabledeviceapi.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/portabledevicetypes.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/processthreadsapi.h+11-3| ... | ... | @@ -47,7 +47,7 @@ extern "C" { |
| 47 | 47 | |
| 48 | 48 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 49 | 49 | WINBASEAPI WINBOOL WINAPI TerminateProcess (HANDLE hProcess, UINT uExitCode); |
| 50 | ||
| 50 | ||
| 51 | 51 | typedef struct _STARTUPINFOA { |
| 52 | 52 | DWORD cb; |
| 53 | 53 | LPSTR lpReserved; |
| ... | ... | @@ -111,6 +111,8 @@ extern "C" { |
| 111 | 111 | ProcessProtectionLevelInfo, |
| 112 | 112 | ProcessLeapSecondInfo, |
| 113 | 113 | ProcessMachineTypeInfo, |
| 114 | ProcessOverrideSubsequentPrefetchParameter, | |
| 115 | ProcessMaxOverridePrefetchParameter, | |
| 114 | 116 | ProcessInformationClassMax |
| 115 | 117 | } PROCESS_INFORMATION_CLASS; |
| 116 | 118 | |
| ... | ... | @@ -136,6 +138,10 @@ DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES); |
| 136 | 138 | MACHINE_ATTRIBUTES MachineAttributes; |
| 137 | 139 | } PROCESS_MACHINE_INFORMATION; |
| 138 | 140 | |
| 141 | typedef struct OVERRIDE_PREFETCH_PARAMETER { | |
| 142 | UINT32 Value; | |
| 143 | } OVERRIDE_PREFETCH_PARAMETER; | |
| 144 | ||
| 139 | 145 | #define PME_CURRENT_VERSION 1 |
| 140 | 146 | |
| 141 | 147 | typedef enum _PROCESS_MEMORY_EXHAUSTION_TYPE { |
| ... | ... | @@ -309,6 +315,7 @@ DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES); |
| 309 | 315 | #if _WIN32_WINNT >= 0x0A00 |
| 310 | 316 | WINBASEAPI DWORD WINAPI QueueUserAPC (PAPCFUNC pfnAPC, HANDLE hThread, ULONG_PTR dwData); |
| 311 | 317 | WINBASEAPI WINBOOL WINAPI SwitchToThread (VOID); |
| 318 | WINBASEAPI LPVOID WINAPI TlsGetValue2(DWORD dwTlsIndex); | |
| 312 | 319 | #endif |
| 313 | 320 | WINBASEAPI DWORD WINAPI SuspendThread (HANDLE hThread); |
| 314 | 321 | WINBASEAPI DWORD WINAPI ResumeThread (HANDLE hThread); |
| ... | ... | @@ -325,8 +332,9 @@ DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES); |
| 325 | 332 | |
| 326 | 333 | #if NTDDI_VERSION >= NTDDI_WIN10_MN |
| 327 | 334 | typedef enum _QUEUE_USER_APC_FLAGS { |
| 328 | QUEUE_USER_APC_FLAGS_NONE = 0x0, | |
| 329 | QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC = 0x1 | |
| 335 | QUEUE_USER_APC_FLAGS_NONE = 0x00000000, | |
| 336 | QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC = 0x00000001, | |
| 337 | QUEUE_USER_APC_CALLBACK_DATA_CONTEXT = 0x00010000 | |
| 330 | 338 | } QUEUE_USER_APC_FLAGS; |
| 331 | 339 | |
| 332 | 340 | typedef struct _APC_CALLBACK_DATA { |
lib/libc/include/any-windows-any/proofofpossessioncookieinfo.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/propidl.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/propsys.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 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 | 102 | PSSTDAPI_(ULONG) PropVariantToUInt32WithDefault(REFPROPVARIANT propvarIn, ULONG uLDefault); |
| 103 | 103 | PSSTDAPI PropVariantToUInt64(REFPROPVARIANT propvarIn, ULONGLONG *ret); |
| 104 | 104 | PSSTDAPI PropVariantToBoolean(REFPROPVARIANT propvarIn, WINBOOL *ret); |
| 105 | PSSTDAPI PropVariantToBSTR(REFPROPVARIANT propvar, BSTR *bstr); | |
| 105 | 106 | PSSTDAPI PropVariantToBuffer(REFPROPVARIANT propvarIn, void *ret, UINT cb); |
| 106 | 107 | PSSTDAPI PropVariantToString(REFPROPVARIANT propvarIn, PWSTR ret, UINT cch); |
| 107 | 108 | PSSTDAPI_(PCWSTR) PropVariantToStringWithDefault(REFPROPVARIANT propvarIn, LPCWSTR pszDefault); |
| ... | ... | @@ -113,6 +114,8 @@ PSSTDAPI PropVariantToStringAlloc(REFPROPVARIANT propvarIn, WCHAR **ret); |
| 113 | 114 | PSSTDAPI PropVariantToVariant(const PROPVARIANT *propvar, VARIANT *var); |
| 114 | 115 | PSSTDAPI VariantToPropVariant(const VARIANT* var, PROPVARIANT* propvar); |
| 115 | 116 | |
| 117 | PSSTDAPI PropVariantGetStringElem(const PROPVARIANT *propvar, ULONG idx, WCHAR **ret); | |
| 118 | ||
| 116 | 119 | #ifdef __cplusplus |
| 117 | 120 | |
| 118 | 121 | HRESULT 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 | 134 | FunctionName: Any valid function name |
| 135 | 135 | DataType: __LONG32 or __int64 |
| 136 | 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 | 138 | #define __buildbittesti(x, y, z, a) unsigned char x(y volatile *Base, y Offset) \ |
| 139 | 139 | { \ |
| 140 | 140 | unsigned char old; \ |
| ... | ... | @@ -162,7 +162,7 @@ __INTRINSICS_USEINLINE |
| 162 | 162 | : "memory", "cc"); \ |
| 163 | 163 | return (old >> Offset) & 1; \ |
| 164 | 164 | } |
| 165 | #elif defined(__aarch64__) || defined(_ARM64_) | |
| 165 | #elif defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_) | |
| 166 | 166 | #define __buildbittesti(x, y, z, a) unsigned char x(y volatile *Base, y Offset) \ |
| 167 | 167 | { \ |
| 168 | 168 | unsigned int old, tmp1, tmp2; \ |
| ... | ... | @@ -198,7 +198,7 @@ __INTRINSICS_USEINLINE |
| 198 | 198 | : "memory", "cc"); \ |
| 199 | 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_) */ | |
| 202 | 202 | |
| 203 | 203 | /* This macro is used by YieldProcessor when compiling x86 w/o SSE2. |
| 204 | 204 | It generates the same opcodes as _mm_pause. */ |
| ... | ... | @@ -668,8 +668,7 @@ unsigned short _rotr16(unsigned short __X, unsigned char __C) |
| 668 | 668 | #define __INTRINSIC_DEFINED__rotr16 |
| 669 | 669 | #endif /* __INTRINSIC_PROLOG */ |
| 670 | 670 | |
| 671 | #if defined(__x86_64__) || defined(_AMD64_) | |
| 672 | ||
| 671 | #if (defined(__x86_64__) && !defined(__arm64ec__)) || (defined(_AMD64_) && !defined(_ARM64EC_)) | |
| 673 | 672 | #if __INTRINSIC_PROLOG(__faststorefence) |
| 674 | 673 | void __faststorefence(void); |
| 675 | 674 | #if !__has_builtin(__faststorefence) |
| ... | ... | @@ -1103,7 +1102,7 @@ unsigned __int64 __shiftright128 (unsigned __int64 LowPart, unsigned __int64 Hi |
| 1103 | 1102 | #define __INTRINSIC_DEFINED___shiftright128 |
| 1104 | 1103 | #endif /* __INTRINSIC_PROLOG */ |
| 1105 | 1104 | |
| 1106 | #endif /* defined(__x86_64__) || defined(_AMD64_) */ | |
| 1105 | #endif /* #(defined(__x86_64__) && !defined(__arm64ec__)) || (defined(_AMD64_) && !defined(_ARM64EC_)) */ | |
| 1107 | 1106 | |
| 1108 | 1107 | /* ***************************************************** */ |
| 1109 | 1108 | |
| ... | ... | @@ -1195,7 +1194,7 @@ unsigned char _BitScanReverse(unsigned __LONG32 *Index, unsigned __LONG32 Mask) |
| 1195 | 1194 | |
| 1196 | 1195 | #endif /* defined(__arm__) || defined(_ARM_) */ |
| 1197 | 1196 | |
| 1198 | #if defined(__aarch64__) || defined(_ARM64_) | |
| 1197 | #if defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_) | |
| 1199 | 1198 | |
| 1200 | 1199 | #if __INTRINSIC_PROLOG(_interlockedbittestandset) |
| 1201 | 1200 | unsigned char _interlockedbittestandset(__LONG32 volatile *a, __LONG32 b); |
| ... | ... | @@ -1436,9 +1435,9 @@ unsigned char _BitScanReverse64(unsigned __LONG32 *Index, unsigned __int64 Mask) |
| 1436 | 1435 | #define __INTRINSIC_DEFINED__BitScanReverse64 |
| 1437 | 1436 | #endif /* __INTRINSIC_PROLOG */ |
| 1438 | 1437 | |
| 1439 | #endif /* defined(__aarch64__) || define(_ARM64_) */ | |
| 1438 | #endif /* defined(__aarch64__) || define(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_) */ | |
| 1440 | 1439 | |
| 1441 | #if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) | |
| 1440 | #if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_) | |
| 1442 | 1441 | |
| 1443 | 1442 | #if __INTRINSIC_PROLOG(_bittest) |
| 1444 | 1443 | unsigned char _bittest(const __LONG32 *__a, __LONG32 __b); |
| ... | ... | @@ -1494,9 +1493,9 @@ unsigned char _bittestandcomplement(__LONG32 *__a, __LONG32 __b) |
| 1494 | 1493 | #define __INTRINSIC_DEFINED__bittestandcomplement |
| 1495 | 1494 | #endif /* __INTRINSIC_PROLOG */ |
| 1496 | 1495 | |
| 1497 | #endif /* defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) */ | |
| 1496 | #endif /* defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_) */ | |
| 1498 | 1497 | |
| 1499 | #if defined(__aarch64__) || defined(_ARM64_) | |
| 1498 | #if defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_) | |
| 1500 | 1499 | |
| 1501 | 1500 | #if __INTRINSIC_PROLOG(_bittest64) |
| 1502 | 1501 | unsigned char _bittest64(const __int64 *__a, __int64 __b); |
| ... | ... | @@ -1552,7 +1551,7 @@ unsigned char _bittestandcomplement64(__int64 *__a, __int64 __b) |
| 1552 | 1551 | #define __INTRINSIC_DEFINED__bittestandcomplement64 |
| 1553 | 1552 | #endif /* __INTRINSIC_PROLOG */ |
| 1554 | 1553 | |
| 1555 | #endif /* defined(__aarch64__) || define(_ARM64_) */ | |
| 1554 | #endif /* defined(__aarch64__) || define(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_) */ | |
| 1556 | 1555 | |
| 1557 | 1556 | /* ***************************************************** */ |
| 1558 | 1557 | |
| ... | ... | @@ -1777,7 +1776,7 @@ void *_InterlockedExchangePointer(void *volatile *Target,void *Value) { |
| 1777 | 1776 | |
| 1778 | 1777 | #endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) || defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) */ |
| 1779 | 1778 | |
| 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_) | |
| 1781 | 1780 | |
| 1782 | 1781 | #if __INTRINSIC_PROLOG(__int2c) |
| 1783 | 1782 | void __int2c(void); |
| ... | ... | @@ -2157,7 +2156,7 @@ unsigned __int64 _xgetbv(unsigned int index) |
| 2157 | 2156 | #endif /* __INTRINSIC_PROLOG */ |
| 2158 | 2157 | #endif /* __GNUC__ < 8 */ |
| 2159 | 2158 | |
| 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_) */ | |
| 2161 | 2160 | |
| 2162 | 2161 | /* ***************************************************** */ |
| 2163 | 2162 |
lib/libc/include/any-windows-any/pthread.h+5-52| ... | ... | @@ -68,9 +68,12 @@ |
| 68 | 68 | #include <signal.h> |
| 69 | 69 | #include <time.h> |
| 70 | 70 | |
| 71 | #include <sys/timeb.h> | |
| 72 | ||
| 73 | 71 | #include "pthread_compat.h" |
| 72 | #include "sched.h" | |
| 73 | ||
| 74 | #ifdef _MSC_VER | |
| 75 | #include "pthread_time.h" | |
| 76 | #endif | |
| 74 | 77 | |
| 75 | 78 | #ifdef __cplusplus |
| 76 | 79 | extern "C" { |
| ... | ... | @@ -83,36 +86,11 @@ extern "C" { |
| 83 | 86 | /* MSB 8-bit major version, 8-bit minor version, 16-bit patch level. */ |
| 84 | 87 | #define __WINPTHREADS_VERSION 0x00050000 |
| 85 | 88 | |
| 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 | 89 | /* #define WINPTHREAD_DBG 1 */ |
| 101 | 90 | |
| 102 | 91 | /* Compatibility stuff: */ |
| 103 | 92 | #define RWLS_PER_THREAD						8 |
| 104 | 93 | |
| 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 | 94 | /* pthread specific defines. */ |
| 117 | 95 | |
| 118 | 96 | #define PTHREAD_CANCEL_DISABLE 0 |
| ... | ... | @@ -234,26 +212,6 @@ struct _pthread_cleanup |
| 234 | 212 | if ((E)) _pthread_cup.func((pthread_once_t *)_pthread_cup.arg); \ |
| 235 | 213 | } while (0) |
| 236 | 214 | |
| 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 | ||
| 245 | struct sched_param { | |
| 246 | int sched_priority; | |
| 247 | }; | |
| 248 | ||
| 249 | WINPTHREAD_API int sched_yield(void); | |
| 250 | WINPTHREAD_API int sched_get_priority_min(int pol); | |
| 251 | WINPTHREAD_API int sched_get_priority_max(int pol); | |
| 252 | WINPTHREAD_API int sched_getscheduler(pid_t pid); | |
| 253 | WINPTHREAD_API int sched_setscheduler(pid_t pid, int pol, const struct sched_param *param); | |
| 254 | ||
| 255 | #endif | |
| 256 | ||
| 257 | 215 | typedef struct pthread_attr_t pthread_attr_t; |
| 258 | 216 | struct pthread_attr_t |
| 259 | 217 | { |
| ... | ... | @@ -393,11 +351,6 @@ WINPTHREAD_API int pthread_condattr_init(pthread_condattr_t *a); |
| 393 | 351 | WINPTHREAD_API int pthread_condattr_getpshared(const pthread_condattr_t *a, int *s); |
| 394 | 352 | WINPTHREAD_API int pthread_condattr_setpshared(pthread_condattr_t *a, int s); |
| 395 | 353 | |
| 396 | #ifndef __clockid_t_defined | |
| 397 | typedef int clockid_t; | |
| 398 | #define __clockid_t_defined 1 | |
| 399 | #endif /* __clockid_t_defined */ | |
| 400 | ||
| 401 | 354 | WINPTHREAD_API int pthread_condattr_getclock (const pthread_condattr_t *attr, |
| 402 | 355 | clockid_t *clock_id); |
| 403 | 356 | WINPTHREAD_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 | 60 | #ifndef WIN_PTHREADS_PTHREAD_COMPAT_H |
| 61 | 61 | #define WIN_PTHREADS_PTHREAD_COMPAT_H |
| 62 | 62 | |
| 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 | |
| 78 | typedef int clockid_t; | |
| 79 | #define __clockid_t_defined 1 | |
| 80 | #endif /* __clockid_t_defined */ | |
| 81 | ||
| 82 | #ifndef _MODE_T_ | |
| 83 | #define	_MODE_T_ | |
| 84 | typedef 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 | 98 | #ifdef __GNUC__ |
| 64 | 99 | |
| 65 | 100 | #define WINPTHREADS_INLINE inline |
| ... | ... | @@ -68,14 +103,11 @@ |
| 68 | 103 | |
| 69 | 104 | #elif _MSC_VER |
| 70 | 105 | |
| 71 | #include "pthread_time.h" | |
| 72 | ||
| 73 | 106 | #ifdef _WIN64 |
| 74 | 107 | typedef __int64 pid_t; |
| 75 | 108 | #else |
| 76 | 109 | typedef int pid_t; |
| 77 | 110 | #endif |
| 78 | typedef int clockid_t; | |
| 79 | 111 | |
| 80 | 112 | #define WINPTHREADS_INLINE __inline |
| 81 | 113 | #define WINPTHREADS_ATTRIBUTE(X) __declspec X |
lib/libc/include/any-windows-any/pthread_time.h+2-17| ... | ... | @@ -20,11 +20,11 @@ |
| 20 | 20 | DEALINGS IN THE SOFTWARE. |
| 21 | 21 | */ |
| 22 | 22 | |
| 23 | #include <sys/timeb.h> | |
| 24 | ||
| 25 | 23 | #ifndef WIN_PTHREADS_TIME_H |
| 26 | 24 | #define WIN_PTHREADS_TIME_H |
| 27 | 25 | |
| 26 | #include "pthread_compat.h" | |
| 27 | ||
| 28 | 28 | /* Posix timers are supported */ |
| 29 | 29 | #ifndef _POSIX_TIMERS |
| 30 | 30 | #define _POSIX_TIMERS 200809L |
| ... | ... | @@ -45,11 +45,6 @@ |
| 45 | 45 | #define _POSIX_THREAD_CPUTIME 200809L |
| 46 | 46 | #endif |
| 47 | 47 | |
| 48 | #ifndef __clockid_t_defined | |
| 49 | typedef int clockid_t; | |
| 50 | #define __clockid_t_defined 1 | |
| 51 | #endif /* __clockid_t_defined */ | |
| 52 | ||
| 53 | 48 | #ifndef TIMER_ABSTIME |
| 54 | 49 | #define TIMER_ABSTIME 1 |
| 55 | 50 | #endif |
| ... | ... | @@ -78,13 +73,6 @@ typedef int clockid_t; |
| 78 | 73 | extern "C" { |
| 79 | 74 | #endif |
| 80 | 75 | |
| 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 */ | |
| 88 | 76 | WINPTHREAD_API int __cdecl nanosleep(const struct timespec *request, struct timespec *remain); |
| 89 | 77 | |
| 90 | 78 | WINPTHREAD_API int __cdecl clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *request, struct timespec *remain); |
| ... | ... | @@ -92,11 +80,8 @@ WINPTHREAD_API int __cdecl clock_getres(clockid_t clock_id, struct timespec *res |
| 92 | 80 | WINPTHREAD_API int __cdecl clock_gettime(clockid_t clock_id, struct timespec *tp); |
| 93 | 81 | WINPTHREAD_API int __cdecl clock_settime(clockid_t clock_id, const struct timespec *tp); |
| 94 | 82 | |
| 95 | #pragma pop_macro("WINPTHREAD_API") | |
| 96 | ||
| 97 | 83 | #ifdef __cplusplus |
| 98 | 84 | } |
| 99 | 85 | #endif |
| 100 | 86 | |
| 101 | 87 | #endif /* WIN_PTHREADS_TIME_H */ |
| 102 |
lib/libc/include/any-windows-any/qedit.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/qnetwork.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/rdpencomapi.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/regbag.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/relogger.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/robuffer.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/rtworkq.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/sapi51.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/sapi53.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/sapi54.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/sched.h+7-27| ... | ... | @@ -19,6 +19,8 @@ |
| 19 | 19 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
| 20 | 20 | DEALINGS IN THE SOFTWARE. |
| 21 | 21 | */ |
| 22 | #ifndef WIN_PTHREADS_SCHED_H | |
| 23 | #define WIN_PTHREADS_SCHED_H | |
| 22 | 24 | |
| 23 | 25 | #include <stddef.h> |
| 24 | 26 | #include <errno.h> |
| ... | ... | @@ -28,14 +30,8 @@ |
| 28 | 30 | #include <limits.h> |
| 29 | 31 | #include <signal.h> |
| 30 | 32 | |
| 31 | #include <sys/timeb.h> | |
| 32 | ||
| 33 | 33 | #include "pthread_compat.h" |
| 34 | 34 | |
| 35 | #ifndef WIN_PTHREADS_SCHED_H | |
| 36 | #define WIN_PTHREADS_SCHED_H | |
| 37 | ||
| 38 | #ifndef SCHED_OTHER | |
| 39 | 35 | /* Some POSIX realtime extensions, mostly stubbed */ |
| 40 | 36 | #define SCHED_OTHER 0 |
| 41 | 37 | #define SCHED_FIFO 1 |
| ... | ... | @@ -51,32 +47,16 @@ struct sched_param { |
| 51 | 47 | extern "C" { |
| 52 | 48 | #endif |
| 53 | 49 | |
| 54 | #if defined(IN_WINPTHREAD) | |
| 55 | # if defined(DLL_EXPORT) && !defined(WINPTHREAD_EXPORT_ALL_DEBUG) | |
| 56 | # define WINPTHREAD_SCHED_API __declspec(dllexport) /* building the DLL */ | |
| 57 | # else | |
| 58 | # define WINPTHREAD_SCHED_API /* building the static library */ | |
| 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 | ||
| 68 | WINPTHREAD_SCHED_API int sched_yield(void); | |
| 69 | WINPTHREAD_SCHED_API int sched_get_priority_min(int pol); | |
| 70 | WINPTHREAD_SCHED_API int sched_get_priority_max(int pol); | |
| 71 | WINPTHREAD_SCHED_API int sched_getscheduler(pid_t pid); | |
| 72 | WINPTHREAD_SCHED_API int sched_setscheduler(pid_t pid, int pol, const struct sched_param *param); | |
| 50 | WINPTHREAD_API int sched_yield(void); | |
| 51 | WINPTHREAD_API int sched_get_priority_min(int pol); | |
| 52 | WINPTHREAD_API int sched_get_priority_max(int pol); | |
| 53 | WINPTHREAD_API int sched_getscheduler(pid_t pid); | |
| 54 | WINPTHREAD_API int sched_setscheduler(pid_t pid, int pol, const struct sched_param *param); | |
| 73 | 55 | |
| 74 | 56 | #ifdef __cplusplus |
| 75 | 57 | } |
| 76 | 58 | #endif |
| 77 | 59 | |
| 78 | #endif | |
| 79 | ||
| 80 | 60 | #ifndef sched_rr_get_interval |
| 81 | 61 | #define sched_rr_get_interval(_p, _i) \ |
| 82 | 62 | ( errno = ENOTSUP, (int) -1 ) |
lib/libc/include/any-windows-any/sec_api/stdlib_s.h+9-1| ... | ... | @@ -12,8 +12,16 @@ |
| 12 | 12 | extern "C" { |
| 13 | 13 | #endif |
| 14 | 14 | |
| 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 | 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 | 25 | _CRTIMP errno_t __cdecl getenv_s(size_t *_ReturnSize,char *_DstBuf,rsize_t _DstSize,const char *_VarName); |
| 18 | 26 | __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, getenv_s, size_t *, _ReturnSize, char, _Dest, const char *, _VarName) |
| 19 | 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 | 23 | #ifndef WIN_PTHREADS_SEMAPHORE_H |
| 24 | 24 | #define WIN_PTHREADS_SEMAPHORE_H |
| 25 | 25 | |
| 26 | #include "pthread_compat.h" | |
| 27 | ||
| 26 | 28 | #ifdef __cplusplus |
| 27 | 29 | extern "C" { |
| 28 | 30 | #endif |
| 29 | 31 | |
| 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 | 32 | /* Set this to 0 to disable it */ |
| 45 | 33 | #define USE_SEM_CriticalSection_SpinCount	100 |
| 46 | 34 | |
| 47 | 35 | #define SEM_VALUE_MAX INT_MAX |
| 48 | 36 | |
| 49 | #ifndef _MODE_T_ | |
| 50 | #define	_MODE_T_ | |
| 51 | typedef unsigned short mode_t; | |
| 52 | #endif | |
| 53 | ||
| 54 | 37 | typedef void		*sem_t; |
| 55 | 38 | |
| 56 | 39 | #define SEM_FAILED 		NULL |
| 57 | 40 | |
| 58 | WINPTHREAD_SEMA_API int sem_init(sem_t * sem, int pshared, unsigned int value); | |
| 41 | WINPTHREAD_API int sem_init(sem_t * sem, int pshared, unsigned int value); | |
| 59 | 42 | |
| 60 | WINPTHREAD_SEMA_API int sem_destroy(sem_t *sem); | |
| 43 | WINPTHREAD_API int sem_destroy(sem_t *sem); | |
| 61 | 44 | |
| 62 | WINPTHREAD_SEMA_API int sem_trywait(sem_t *sem); | |
| 45 | WINPTHREAD_API int sem_trywait(sem_t *sem); | |
| 63 | 46 | |
| 64 | WINPTHREAD_SEMA_API int sem_wait(sem_t *sem); | |
| 47 | WINPTHREAD_API int sem_wait(sem_t *sem); | |
| 65 | 48 | |
| 66 | WINPTHREAD_SEMA_API int sem_timedwait(sem_t * sem, const struct timespec *t); | |
| 49 | WINPTHREAD_API int sem_timedwait(sem_t * sem, const struct timespec *t); | |
| 67 | 50 | |
| 68 | WINPTHREAD_SEMA_API int sem_post(sem_t *sem); | |
| 51 | WINPTHREAD_API int sem_post(sem_t *sem); | |
| 69 | 52 | |
| 70 | WINPTHREAD_SEMA_API int sem_post_multiple(sem_t *sem, int count); | |
| 53 | WINPTHREAD_API int sem_post_multiple(sem_t *sem, int count); | |
| 71 | 54 | |
| 72 | 55 | /* yes, it returns a semaphore (or SEM_FAILED) */ |
| 73 | WINPTHREAD_SEMA_API sem_t * sem_open(const char * name, int oflag, mode_t mode, unsigned int value); | |
| 56 | WINPTHREAD_API sem_t * sem_open(const char * name, int oflag, mode_t mode, unsigned int value); | |
| 74 | 57 | |
| 75 | WINPTHREAD_SEMA_API int sem_close(sem_t * sem); | |
| 58 | WINPTHREAD_API int sem_close(sem_t * sem); | |
| 76 | 59 | |
| 77 | WINPTHREAD_SEMA_API int sem_unlink(const char * name); | |
| 60 | WINPTHREAD_API int sem_unlink(const char * name); | |
| 78 | 61 | |
| 79 | WINPTHREAD_SEMA_API int sem_getvalue(sem_t * sem, int * sval); | |
| 62 | WINPTHREAD_API int sem_getvalue(sem_t * sem, int * sval); | |
| 80 | 63 | |
| 81 | 64 | #ifdef __cplusplus |
| 82 | 65 | } |
lib/libc/include/any-windows-any/sensorsapi.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/servprov.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/shldisp.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/shlwapi.h+2-2| ... | ... | @@ -438,8 +438,8 @@ extern "C" { |
| 438 | 438 | LWSTDAPI_(WINBOOL) PathMatchSpecW(LPCWSTR pszFile,LPCWSTR pszSpec); |
| 439 | 439 | LWSTDAPI_(int) PathParseIconLocationA(LPSTR pszIconFile); |
| 440 | 440 | LWSTDAPI_(int) PathParseIconLocationW(LPWSTR pszIconFile); |
| 441 | LWSTDAPI_(void) PathQuoteSpacesA(LPSTR lpsz); | |
| 442 | LWSTDAPI_(void) PathQuoteSpacesW(LPWSTR lpsz); | |
| 441 | LWSTDAPI_(WINBOOL) PathQuoteSpacesA(LPSTR lpsz); | |
| 442 | LWSTDAPI_(WINBOOL) PathQuoteSpacesW(LPWSTR lpsz); | |
| 443 | 443 | LWSTDAPI_(WINBOOL) PathRelativePathToA(LPSTR pszPath,LPCSTR pszFrom,DWORD dwAttrFrom,LPCSTR pszTo,DWORD dwAttrTo); |
| 444 | 444 | LWSTDAPI_(WINBOOL) PathRelativePathToW(LPWSTR pszPath,LPCWSTR pszFrom,DWORD dwAttrFrom,LPCWSTR pszTo,DWORD dwAttrTo); |
| 445 | 445 | LWSTDAPI_(void) PathRemoveArgsA(LPSTR pszPath); |
lib/libc/include/any-windows-any/shobjidl.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/shtypes.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/spatialaudioclient.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/spellcheck.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 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 | 540 | _CRTIMP int __cdecl _fileno(FILE *_File); |
| 541 | 541 | #ifdef _POSIX_ |
| 542 | 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 | 547 | #endif |
| 544 | 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 | 552 | _CRTIMP int __cdecl _flushall(void); |
| 546 | 553 | FILE *__cdecl fopen(const char * __restrict__ _Filename,const char * __restrict__ _Mode) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; |
| 547 | 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 | 922 | int __cdecl __mingw_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...); |
| 916 | 923 | /* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3) |
| 917 | 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) | |
| 919 | int __cdecl __mingw_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...); | |
| 920 | /* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2) | |
| 921 | int __cdecl __mingw_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list); | |
| 925 | /* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3) | |
| 926 | int __cdecl __mingw_swprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , ...); | |
| 927 | /* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3) | |
| 928 | int __cdecl __mingw_vswprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ ,va_list); | |
| 922 | 929 | |
| 923 | 930 | /* __attribute__((__format__ (ms_wscanf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2) |
| 924 | 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 | 942 | int __cdecl __ms_vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList); |
| 936 | 943 | /*__attribute__((__format__ (ms_wprintf, 1, 0))) */ __MINGW_ATTRIB_NONNULL(1) |
| 937 | 944 | int __cdecl __ms_vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList); |
| 938 | /* __attribute__((__format__ (ms_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2) | |
| 939 | int __cdecl __ms_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...); | |
| 940 | /* __attribute__((__format__ (ms_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2) | |
| 941 | int __cdecl __ms_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list); | |
| 945 | /* __attribute__((__format__ (ms_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3) | |
| 946 | int __cdecl __ms_swprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , ...); | |
| 947 | /* __attribute__((__format__ (ms_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3) | |
| 948 | int __cdecl __ms_vswprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ ,va_list); | |
| 942 | 949 | |
| 943 | 950 | #ifdef _UCRT |
| 944 | 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 | 1003 | int vwprintf (const wchar_t *__format, __builtin_va_list __local_argv) |
| 997 | 1004 | __MINGW_ASM_CALL(__mingw_vwprintf); |
| 998 | 1005 | |
| 1006 | /* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3) | |
| 1007 | int 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) | |
| 1014 | int 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) | |
| 1024 | int 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 | 1032 | #ifndef __NO_ISOCEXT /* externs in libmingwex.a */ |
| 1000 | 1033 | |
| 1001 | 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 | 1056 | #endif |
| 1024 | 1057 | return __mingw_vsnwprintf( __stream, __n, __format, __local_argv ); |
| 1025 | 1058 | } |
| 1059 | ||
| 1026 | 1060 | #endif /* __NO_ISOCEXT */ |
| 1027 | 1061 | |
| 1028 | 1062 | #else /* !__USE_MINGW_ANSI_STDIO */ |
| ... | ... | @@ -1170,7 +1204,45 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti |
| 1170 | 1204 | |
| 1171 | 1205 | #if __USE_MINGW_ANSI_STDIO == 0 |
| 1172 | 1206 | __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 | 1247 | __builtin_va_list __ap; |
| 1176 | 1248 | int __ret; |
| ... | ... | @@ -1182,8 +1254,7 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti |
| 1182 | 1254 | __mingw_ovr |
| 1183 | 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); | |
| 1186 | return __ret < 0 ? -1 : __ret; | |
| 1257 | return __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, s, n, format, NULL, arg); | |
| 1187 | 1258 | } |
| 1188 | 1259 | #endif |
| 1189 | 1260 | |
| ... | ... | @@ -1222,26 +1293,16 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti |
| 1222 | 1293 | #if __USE_MINGW_ANSI_STDIO == 0 |
| 1223 | 1294 | int __cdecl __ms_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...); |
| 1224 | 1295 | int __cdecl __ms_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list); |
| 1225 | __mingw_ovr | |
| 1226 | int snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...) | |
| 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 | } | |
| 1296 | int __cdecl snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...) __MINGW_ASM_CALL(__ms_snwprintf); | |
| 1297 | int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg) __MINGW_ASM_CALL(__ms_vsnwprintf); | |
| 1240 | 1298 | #endif |
| 1241 | 1299 | |
| 1242 | 1300 | #endif /* ! __NO_ISOCEXT */ |
| 1243 | 1301 | _CRTIMP int __cdecl _swprintf(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,...); |
| 1244 | 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 | 1306 | #endif /* _UCRT */ |
| 1246 | 1307 | |
| 1247 | 1308 | #ifndef RC_INVOKED |
| ... | ... | @@ -1255,7 +1316,14 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti |
| 1255 | 1316 | #endif |
| 1256 | 1317 | #endif |
| 1257 | 1318 | |
| 1319 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 1320 | #pragma push_macro("_wtempnam") | |
| 1321 | #undef _wtempnam | |
| 1322 | #endif | |
| 1258 | 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 | 1327 | _CRTIMP int __cdecl _snwscanf(const wchar_t * __restrict__ _Src,size_t _MaxCount,const wchar_t * __restrict__ _Format,...); |
| 1260 | 1328 | _CRTIMP FILE *__cdecl _wfdopen(int _FileHandle ,const wchar_t *_Mode); |
| 1261 | 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 | 1401 | #define P_tmpdir _P_tmpdir |
| 1334 | 1402 | #define SYS_OPEN _SYS_OPEN |
| 1335 | 1403 | |
| 1404 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 1405 | #pragma push_macro("tempnam") | |
| 1406 | #undef tempnam | |
| 1407 | #endif | |
| 1336 | 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 | 1412 | int __cdecl fcloseall(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005; |
| 1338 | 1413 | FILE *__cdecl fdopen(int _FileHandle,const char *_Format) __MINGW_ATTRIB_DEPRECATED_MSVC2005; |
| 1339 | 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 | 419 | |
| 420 | 420 | #ifndef _CRT_ALLOCATION_DEFINED |
| 421 | 421 | #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 | 452 | void *__cdecl calloc(size_t _NumOfElements,size_t _SizeOfElements); |
| 423 | 453 | void __cdecl free(void *_Memory); |
| 424 | 454 | void *__cdecl malloc(size_t _Size); |
| ... | ... | @@ -434,6 +464,23 @@ float __cdecl __MINGW_NOTHROW strtof(const char * __restrict__ _Str,char ** __re |
| 434 | 464 | _CRTIMP void *__cdecl _aligned_offset_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment,size_t _Offset); |
| 435 | 465 | _CRTIMP size_t __cdecl _aligned_msize(void *_Memory,size_t _Alignment,size_t _Offset); |
| 436 | 466 | # 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 | 484 | #endif |
| 438 | 485 | |
| 439 | 486 | #ifndef _WSTDLIB_DEFINED |
| ... | ... | @@ -497,7 +544,16 @@ float __cdecl __MINGW_NOTHROW strtof(const char * __restrict__ _Str,char ** __re |
| 497 | 544 | |
| 498 | 545 | #ifndef _POSIX_ |
| 499 | 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 | 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 | 557 | _CRTIMP char *__cdecl _ecvt(double _Val,int _NumOfDigits,int *_PtDec,int *_PtSign) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; |
| 502 | 558 | _CRTIMP char *__cdecl _fcvt(double _Val,int _NumOfDec,int *_PtDec,int *_PtSign) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; |
| 503 | 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 | 615 | |
| 560 | 616 | #ifndef _WSTDLIBP_DEFINED |
| 561 | 617 | #define _WSTDLIBP_DEFINED |
| 618 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 619 | #pragma push_macro("_wfullpath") | |
| 620 | #undef _wfullpath | |
| 621 | #endif | |
| 562 | 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 | 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 | 627 | #ifndef _CRT_WPERROR_DEFINED |
| 565 | 628 | #define _CRT_WPERROR_DEFINED |
lib/libc/include/any-windows-any/string.h+28| ... | ... | @@ -64,7 +64,14 @@ extern "C" { |
| 64 | 64 | size_t __cdecl strlen(const char *_Str); |
| 65 | 65 | size_t __cdecl strnlen(const char *_Str,size_t _MaxCount); |
| 66 | 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 | 71 | _CRTIMP char *__cdecl _strdup(const char *_Src); |
| 72 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 73 | #pragma pop_macro("_strdup") | |
| 74 | #endif | |
| 68 | 75 | _CONST_RETURN char *__cdecl strchr(const char *_Str,int _Val); |
| 69 | 76 | _CRTIMP int __cdecl _stricmp(const char *_Str1,const char *_Str2); |
| 70 | 77 | _CRTIMP int __cdecl _strcmpi(const char *_Str1,const char *_Str2); |
| ... | ... | @@ -105,7 +112,14 @@ extern "C" { |
| 105 | 112 | _CRTIMP size_t __cdecl _strxfrm_l(char * __restrict__ _Dst,const char * __restrict__ _Src,size_t _MaxCount,_locale_t _Locale); |
| 106 | 113 | |
| 107 | 114 | #ifndef	NO_OLDNAMES |
| 115 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 116 | #pragma push_macro("strdup") | |
| 117 | #undef strdup | |
| 118 | #endif | |
| 108 | 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 | 123 | int __cdecl strcmpi(const char *_Str1,const char *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005; |
| 110 | 124 | int __cdecl stricmp(const char *_Str1,const char *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005; |
| 111 | 125 | char *__cdecl strlwr(char *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005; |
| ... | ... | @@ -128,7 +142,14 @@ extern "C" { |
| 128 | 142 | #ifndef _WSTRING_DEFINED |
| 129 | 143 | #define _WSTRING_DEFINED |
| 130 | 144 | |
| 145 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 146 | #pragma push_macro("_wcsdup") | |
| 147 | #undef _wcsdup | |
| 148 | #endif | |
| 131 | 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 | 153 | wchar_t *__cdecl wcscat(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Source) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; |
| 133 | 154 | _CONST_RETURN wchar_t *__cdecl wcschr(const wchar_t *_Str,wchar_t _Ch); |
| 134 | 155 | int __cdecl wcscmp(const wchar_t *_Str1,const wchar_t *_Str2); |
| ... | ... | @@ -177,7 +198,14 @@ extern "C" { |
| 177 | 198 | _CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale); |
| 178 | 199 | |
| 179 | 200 | #ifndef	NO_OLDNAMES |
| 201 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 202 | #pragma push_macro("wcsdup") | |
| 203 | #undef wcsdup | |
| 204 | #endif | |
| 180 | 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 | 209 | #define wcswcs wcsstr |
| 182 | 210 | int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005; |
| 183 | 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 | /*** 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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/structuredquerycondition.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/swprintf.inl+5-29| ... | ... | @@ -9,26 +9,6 @@ |
| 9 | 9 | |
| 10 | 10 | #include <vadefs.h> |
| 11 | 11 | |
| 12 | __mingw_ovr | |
| 13 | /* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3) | |
| 14 | int 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) | |
| 21 | int 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 | 12 | #ifdef __cplusplus |
| 33 | 13 | |
| 34 | 14 | extern "C++" { |
| ... | ... | @@ -37,17 +17,15 @@ __mingw_ovr |
| 37 | 17 | /* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2) |
| 38 | 18 | int 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 | 20 | return _vswprintf( __stream, __format, __local_argv ); |
| 44 | #endif | |
| 45 | 21 | } |
| 46 | 22 | |
| 47 | 23 | __mingw_ovr |
| 48 | 24 | /* __attribute__((__format__ (gnu_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2) |
| 49 | 25 | int 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 | 29 | int __retval; |
| 52 | 30 | __builtin_va_list __local_argv; |
| 53 | 31 | |
| ... | ... | @@ -55,19 +33,17 @@ int swprintf (wchar_t *__stream, const wchar_t *__format, ...) |
| 55 | 33 | __retval = vswprintf( __stream, __format, __local_argv ); |
| 56 | 34 | __builtin_va_end( __local_argv ); |
| 57 | 35 | return __retval; |
| 36 | #else | |
| 37 | return _swprintf( __stream, __format, __builtin_va_arg_pack() ); | |
| 38 | #endif | |
| 58 | 39 | } |
| 59 | 40 | |
| 60 | 41 | } |
| 61 | 42 | |
| 62 | 43 | #elif defined(_CRT_NON_CONFORMING_SWPRINTFS) |
| 63 | 44 | |
| 64 | #if __USE_MINGW_ANSI_STDIO | |
| 65 | #define swprintf __mingw_swprintf | |
| 66 | #define vswprintf __mingw_vswprintf | |
| 67 | #else | |
| 68 | 45 | #define swprintf _swprintf |
| 69 | 46 | #define vswprintf _vswprintf |
| 70 | #endif | |
| 71 | 47 | |
| 72 | 48 | #endif /* __cplusplus */ |
| 73 | 49 |
lib/libc/include/any-windows-any/systemmediatransportcontrolsinterop.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/taskschd.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/tchar.h+49-34| ... | ... | @@ -133,7 +133,7 @@ extern "C" { |
| 133 | 133 | #define _tenviron _wenviron |
| 134 | 134 | #define __targv __wargv |
| 135 | 135 | |
| 136 | #define _tprintf wprintf | |
| 136 | #define _tprintf __ms_wprintf | |
| 137 | 137 | #define _tprintf_l _wprintf_l |
| 138 | 138 | #define _tprintf_p _wprintf_p |
| 139 | 139 | #define _tprintf_p_l _wprintf_p_l |
| ... | ... | @@ -145,11 +145,11 @@ extern "C" { |
| 145 | 145 | #define _vtcprintf_l _vcwprintf_l |
| 146 | 146 | #define _vtcprintf_p _vcwprintf_p |
| 147 | 147 | #define _vtcprintf_p_l _vcwprintf_p_l |
| 148 | #define _ftprintf fwprintf | |
| 148 | #define _ftprintf __ms_fwprintf | |
| 149 | 149 | #define _ftprintf_l _fwprintf_l |
| 150 | 150 | #define _ftprintf_p _fwprintf_p |
| 151 | 151 | #define _ftprintf_p_l _fwprintf_p_l |
| 152 | #define _stprintf swprintf | |
| 152 | #define _stprintf _swprintf | |
| 153 | 153 | #define _stprintf_l __swprintf_l |
| 154 | 154 | #define _stprintf_p _swprintf_p |
| 155 | 155 | #define _stprintf_p_l _swprintf_p_l |
| ... | ... | @@ -159,15 +159,15 @@ extern "C" { |
| 159 | 159 | #define _sctprintf_p_l _scwprintf_p_l |
| 160 | 160 | #define _sntprintf _snwprintf |
| 161 | 161 | #define _sntprintf_l _snwprintf_l |
| 162 | #define _vtprintf vwprintf | |
| 162 | #define _vtprintf __ms_vwprintf | |
| 163 | 163 | #define _vtprintf_l _vwprintf_l |
| 164 | 164 | #define _vtprintf_p _vwprintf_p |
| 165 | 165 | #define _vtprintf_p_l _vwprintf_p_l |
| 166 | #define _vftprintf vfwprintf | |
| 166 | #define _vftprintf __ms_vfwprintf | |
| 167 | 167 | #define _vftprintf_l _vfwprintf_l |
| 168 | 168 | #define _vftprintf_p _vfwprintf_p |
| 169 | 169 | #define _vftprintf_p_l _vfwprintf_p_l |
| 170 | #define _vstprintf vswprintf | |
| 170 | #define _vstprintf _vswprintf | |
| 171 | 171 | #define _vstprintf_l _vswprintf_l |
| 172 | 172 | #define _vstprintf_p _vswprintf_p |
| 173 | 173 | #define _vstprintf_p_l _vswprintf_p_l |
| ... | ... | @@ -178,13 +178,13 @@ extern "C" { |
| 178 | 178 | #define _vsntprintf _vsnwprintf |
| 179 | 179 | #define _vsntprintf_l _vsnwprintf_l |
| 180 | 180 | |
| 181 | #define _tscanf wscanf | |
| 181 | #define _tscanf __ms_wscanf | |
| 182 | 182 | #define _tscanf_l _wscanf_l |
| 183 | 183 | #define _tcscanf _cwscanf |
| 184 | 184 | #define _tcscanf_l _cwscanf_l |
| 185 | #define _ftscanf fwscanf | |
| 185 | #define _ftscanf __ms_fwscanf | |
| 186 | 186 | #define _ftscanf_l _fwscanf_l |
| 187 | #define _stscanf swscanf | |
| 187 | #define _stscanf __ms_swscanf | |
| 188 | 188 | #define _stscanf_l _swscanf_l |
| 189 | 189 | #define _sntscanf _snwscanf |
| 190 | 190 | #define _sntscanf_l _snwscanf_l |
| ... | ... | @@ -404,6 +404,21 @@ extern "C" { |
| 404 | 404 | |
| 405 | 405 | #define _tsetlocale _wsetlocale |
| 406 | 406 | |
| 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 | 422 | #define _tcsclen wcslen |
| 408 | 423 | #define _tcscnlen wcsnlen |
| 409 | 424 | #define _tcsclen_l(_String,_Locale) wcslen(_String) |
| ... | ... | @@ -457,6 +472,10 @@ extern "C" { |
| 457 | 472 | #define _istupper_l _iswupper_l |
| 458 | 473 | #define _istxdigit iswxdigit |
| 459 | 474 | #define _istxdigit_l _iswxdigit_l |
| 475 | #define _istblank iswblank | |
| 476 | #if __MSVCRT_VERSION__ >= 0xC00 | |
| 477 | #define _istblank_l _iswblank_l | |
| 478 | #endif /* msvcr120 */ | |
| 460 | 479 | |
| 461 | 480 | #define _totupper towupper |
| 462 | 481 | #define _totupper_l _towupper_l |
| ... | ... | @@ -493,7 +512,7 @@ extern "C" { |
| 493 | 512 | |
| 494 | 513 | #endif /* __CYGWIN__ */ |
| 495 | 514 | |
| 496 | #else | |
| 515 | #else /* _UNICODE */ | |
| 497 | 516 | |
| 498 | 517 | #ifdef __cplusplus |
| 499 | 518 | } |
| ... | ... | @@ -520,7 +539,7 @@ extern "C" { |
| 520 | 539 | #endif |
| 521 | 540 | #define __targv __argv |
| 522 | 541 | |
| 523 | #define _tprintf printf | |
| 542 | #define _tprintf __ms_printf | |
| 524 | 543 | #define _tprintf_l _printf_l |
| 525 | 544 | #define _tprintf_p _printf_p |
| 526 | 545 | #define _tprintf_p_l _printf_p_l |
| ... | ... | @@ -532,11 +551,11 @@ extern "C" { |
| 532 | 551 | #define _vtcprintf_l _vcprintf_l |
| 533 | 552 | #define _vtcprintf_p _vcprintf_p |
| 534 | 553 | #define _vtcprintf_p_l _vcprintf_p_l |
| 535 | #define _ftprintf fprintf | |
| 554 | #define _ftprintf __ms_fprintf | |
| 536 | 555 | #define _ftprintf_l _fprintf_l |
| 537 | 556 | #define _ftprintf_p _fprintf_p |
| 538 | 557 | #define _ftprintf_p_l _fprintf_p_l |
| 539 | #define _stprintf sprintf | |
| 558 | #define _stprintf __ms_sprintf | |
| 540 | 559 | #define _stprintf_l _sprintf_l |
| 541 | 560 | #define _stprintf_p _sprintf_p |
| 542 | 561 | #define _stprintf_p_l _sprintf_p_l |
| ... | ... | @@ -546,15 +565,15 @@ extern "C" { |
| 546 | 565 | #define _sctprintf_p_l _scprintf_p_l |
| 547 | 566 | #define _sntprintf _snprintf |
| 548 | 567 | #define _sntprintf_l _snprintf_l |
| 549 | #define _vtprintf vprintf | |
| 568 | #define _vtprintf __ms_vprintf | |
| 550 | 569 | #define _vtprintf_l _vprintf_l |
| 551 | 570 | #define _vtprintf_p _vprintf_p |
| 552 | 571 | #define _vtprintf_p_l _vprintf_p_l |
| 553 | #define _vftprintf vfprintf | |
| 572 | #define _vftprintf __ms_vfprintf | |
| 554 | 573 | #define _vftprintf_l _vfprintf_l |
| 555 | 574 | #define _vftprintf_p _vfprintf_p |
| 556 | 575 | #define _vftprintf_p_l _vfprintf_p_l |
| 557 | #define _vstprintf vsprintf | |
| 576 | #define _vstprintf __ms_vsprintf | |
| 558 | 577 | #define _vstprintf_l _vsprintf_l |
| 559 | 578 | #define _vstprintf_p _vsprintf_p |
| 560 | 579 | #define _vstprintf_p_l _vsprintf_p_l |
| ... | ... | @@ -565,13 +584,13 @@ extern "C" { |
| 565 | 584 | #define _vsntprintf _vsnprintf |
| 566 | 585 | #define _vsntprintf_l _vsnprintf_l |
| 567 | 586 | |
| 568 | #define _tscanf scanf | |
| 587 | #define _tscanf __ms_scanf | |
| 569 | 588 | #define _tscanf_l _scanf_l |
| 570 | 589 | #define _tcscanf _cscanf |
| 571 | 590 | #define _tcscanf_l _cscanf_l |
| 572 | #define _ftscanf fscanf | |
| 591 | #define _ftscanf __ms_fscanf | |
| 573 | 592 | #define _ftscanf_l _fscanf_l |
| 574 | #define _stscanf sscanf | |
| 593 | #define _stscanf __ms_sscanf | |
| 575 | 594 | #define _stscanf_l _sscanf_l |
| 576 | 595 | #define _sntscanf _snscanf |
| 577 | 596 | #define _sntscanf_l _snscanf_l |
| ... | ... | @@ -769,18 +788,6 @@ extern "C" { |
| 769 | 788 | #define _tsetlocale setlocale |
| 770 | 789 | |
| 771 | 790 | #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 | 791 | #define _fgettc_nolock _fgetc_nolock |
| 785 | 792 | #define _fputtc_nolock _fputc_nolock |
| 786 | 793 | #define _gettc_nolock _getc_nolock |
| ... | ... | @@ -997,6 +1004,10 @@ extern "C" { |
| 997 | 1004 | #define _istspace_l _ismbcspace_l |
| 998 | 1005 | #define _istupper _ismbcupper |
| 999 | 1006 | #define _istupper_l _ismbcupper_l |
| 1007 | #define _istblank _ismbcblank | |
| 1008 | #if __MSVCRT_VERSION__ >= 0xC00 | |
| 1009 | #define _istblank_l _ismbcblank_l | |
| 1010 | #endif /* msvcr120 */ | |
| 1000 | 1011 | |
| 1001 | 1012 | #define _totupper _mbctoupper |
| 1002 | 1013 | #define _totupper_l _mbctoupper_l |
| ... | ... | @@ -1009,7 +1020,7 @@ extern "C" { |
| 1009 | 1020 | |
| 1010 | 1021 | #endif /* __CYGWIN__ */ |
| 1011 | 1022 | |
| 1012 | #else | |
| 1023 | #else /* _MBCS */ | |
| 1013 | 1024 | |
| 1014 | 1025 | #ifndef __TCHAR_DEFINED |
| 1015 | 1026 | #define __TCHAR_DEFINED |
| ... | ... | @@ -1134,6 +1145,10 @@ extern "C" { |
| 1134 | 1145 | #define _istspace_l _isspace_l |
| 1135 | 1146 | #define _istupper isupper |
| 1136 | 1147 | #define _istupper_l _isupper_l |
| 1148 | #define _istblank isblank | |
| 1149 | #if __MSVCRT_VERSION__ >= 0xC00 | |
| 1150 | #define _istblank_l _isblank_l | |
| 1151 | #endif /* msvcr120 */ | |
| 1137 | 1152 | |
| 1138 | 1153 | #define _totupper toupper |
| 1139 | 1154 | #define _totupper_l _toupper_l |
| ... | ... | @@ -1168,9 +1183,9 @@ extern "C" { |
| 1168 | 1183 | #define _strnset_l(_Destination,_Value,_Count,_Locale) (_strnset(_Destination,_Value,_Count)) |
| 1169 | 1184 | #define _strset_l(_Destination,_Value,_Locale) (_strset(_Destination,_Value)) |
| 1170 | 1185 | #endif |
| 1171 | #endif | |
| 1186 | #endif /* _MBCS */ | |
| 1172 | 1187 | |
| 1173 | #endif /* __CYGWIN__ */ | |
| 1188 | #endif /* _UNICODE */ | |
| 1174 | 1189 | |
| 1175 | 1190 | #define _T(x) __T(x) |
| 1176 | 1191 | #define _TEXT(x) __T(x) |
lib/libc/include/any-windows-any/textstor.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/thumbcache.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/tlbref.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/tlogstg.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/tpcshrd.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/tsvirtualchannels.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/tuner.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/uianimation.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/uiautomationclient.h+91-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
| ... | ... | @@ -1344,6 +1344,96 @@ DEFINE_GUID(LIBID_UIAutomationClient, 0x944de083, 0x8fb8, 0x45cf, 0xbc,0xb7, 0xc |
| 1344 | 1344 | #define UIA_AppBarControlTypeId (50040) |
| 1345 | 1345 | |
| 1346 | 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 | 1437 | #ifndef __UIA_LandmarkTypeIds_MODULE_DEFINED__ |
| 1348 | 1438 | #define __UIA_LandmarkTypeIds_MODULE_DEFINED__ |
| 1349 | 1439 | #define UIA_CustomLandmarkTypeId (80000) |
lib/libc/include/any-windows-any/uiautomationcore.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/uiviewsettingsinterop.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/unknwn.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/unknwnbase.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/urlhist.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/urlmon.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/vdslun.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/vidcap.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/vmr9.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/vsadmin.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/vsbackup.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/vsmgmt.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/vsprov.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/vss.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/vswriter.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wbemads.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wbemcli.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wbemdisp.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wbemprov.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wbemtran.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 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 | 213 | wint_t __cdecl towupper(wint_t _C); |
| 214 | 214 | wint_t __cdecl towlower(wint_t _C); |
| 215 | 215 | int __cdecl iswctype(wint_t _C,wctype_t _Type); |
| 216 | #if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x700 && _WIN32_WINNT >= 0x0600) | |
| 217 | /* These are available since msvcr80.dll, and in msvcrt.dll since Vista. */ | |
| 216 | #if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x600 && _WIN32_WINNT >= 0x0600) | |
| 217 | /* These are available since msvcr80.dll (__MSVCRT_VERSION__ >= 0x800), and in | |
| 218 | * msvcrt.dll (__MSVCRT_VERSION__ == 0x600) since Vista (_WIN32_WINNT >= 0x0600). */ | |
| 218 | 219 | _CRTIMP int __cdecl _iswalpha_l(wint_t _C,_locale_t _Locale); |
| 219 | 220 | _CRTIMP int __cdecl _iswupper_l(wint_t _C,_locale_t _Locale); |
| 220 | 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 | 254 | #ifndef _WDIRECT_DEFINED |
| 254 | 255 | #define _WDIRECT_DEFINED |
| 255 | 256 | |
| 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 | 265 | _CRTIMP wchar_t *__cdecl _wgetcwd(wchar_t *_DstBuf,int _SizeInWords); |
| 257 | 266 | _CRTIMP wchar_t *__cdecl _wgetdcwd(int _Drive,wchar_t *_DstBuf,int _SizeInWords); |
| 258 | 267 | #if __MSVCRT_VERSION__ >= 0x800 |
| 259 | 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 | 274 | #endif |
| 261 | 275 | _CRTIMP int __cdecl _wchdir(const wchar_t *_Path); |
| 262 | 276 | _CRTIMP int __cdecl _wmkdir(const wchar_t *_Path); |
| ... | ... | @@ -336,7 +350,7 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index); |
| 336 | 350 | #define iswgraph(_c) (iswctype(_c,_PUNCT|_ALPHA|_DIGIT)) |
| 337 | 351 | #define iswcntrl(_c) (iswctype(_c,_CONTROL)) |
| 338 | 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 | 354 | # define _iswalpha_l(_c,_p) (_iswctype_l(_c,_ALPHA,_p)) |
| 341 | 355 | # define _iswupper_l(_c,_p) (_iswctype_l(_c,_UPPER,_p)) |
| 342 | 356 | # define _iswlower_l(_c,_p) (_iswctype_l(_c,_LOWER,_p)) |
| ... | ... | @@ -452,10 +466,10 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index); |
| 452 | 466 | int __cdecl __mingw_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...); |
| 453 | 467 | /* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3) |
| 454 | 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) | |
| 456 | int __cdecl __mingw_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...); | |
| 457 | /* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2) | |
| 458 | int __cdecl __mingw_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list); | |
| 469 | /* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3) | |
| 470 | int __cdecl __mingw_swprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , ...); | |
| 471 | /* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3) | |
| 472 | int __cdecl __mingw_vswprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ ,va_list); | |
| 459 | 473 | |
| 460 | 474 | /* __attribute__((__format__ (ms_wscanf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2) |
| 461 | 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 | 486 | int __cdecl __ms_vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList); |
| 473 | 487 | /*__attribute__((__format__ (ms_wprintf, 1, 0))) */ __MINGW_ATTRIB_NONNULL(1) |
| 474 | 488 | int __cdecl __ms_vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList); |
| 475 | /* __attribute__((__format__ (ms_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2) | |
| 476 | int __cdecl __ms_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...); | |
| 477 | /* __attribute__((__format__ (ms_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2) | |
| 478 | int __cdecl __ms_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list); | |
| 489 | /* __attribute__((__format__ (ms_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3) | |
| 490 | int __cdecl __ms_swprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , ...); | |
| 491 | /* __attribute__((__format__ (ms_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3) | |
| 492 | int __cdecl __ms_vswprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ ,va_list); | |
| 479 | 493 | |
| 480 | 494 | #ifdef _UCRT |
| 481 | 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 | 547 | int vwprintf (const wchar_t *__format, __builtin_va_list __local_argv) |
| 534 | 548 | __MINGW_ASM_CALL(__mingw_vwprintf); |
| 535 | 549 | |
| 536 | /*#ifndef __NO_ISOCEXT */ /* externs in libmingwex.a */ | |
| 550 | /* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3) | |
| 551 | int 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) | |
| 555 | int 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 | 560 | /* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3) |
| 538 | 561 | int snwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, ...) |
| 539 | 562 | __MINGW_ASM_CALL(__mingw_snwprintf); |
| ... | ... | @@ -541,7 +564,9 @@ __MINGW_ASM_CALL(__mingw_snwprintf); |
| 541 | 564 | /* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3) |
| 542 | 565 | int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builtin_va_list __local_argv) |
| 543 | 566 | __MINGW_ASM_CALL(__mingw_vsnwprintf); |
| 544 | /* #endif */ /* __NO_ISOCEXT */ | |
| 567 | ||
| 568 | #endif /* __NO_ISOCEXT */ | |
| 569 | ||
| 545 | 570 | #else /* !__USE_MINGW_ANSI_STDIO */ |
| 546 | 571 | |
| 547 | 572 | #ifdef _UCRT |
| ... | ... | @@ -616,6 +641,44 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf); |
| 616 | 641 | { |
| 617 | 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 | 682 | #else |
| 620 | 683 | |
| 621 | 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 | 715 | int __cdecl wprintf(const wchar_t * __restrict__ _Format,...); |
| 653 | 716 | int __cdecl vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList); |
| 654 | 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 | 721 | #endif /* _UCRT */ |
| 656 | 722 | #endif /* __USE_MINGW_ANSI_STDIO */ |
| 657 | 723 | |
| ... | ... | @@ -707,12 +773,12 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf); |
| 707 | 773 | __builtin_va_start(__ap, format); |
| 708 | 774 | __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, s, n, format, NULL, __ap); |
| 709 | 775 | __builtin_va_end(__ap); |
| 710 | return __ret; | |
| 776 | return __ret < 0 ? -1 : __ret; | |
| 711 | 777 | } |
| 712 | 778 | __mingw_ovr |
| 713 | 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 | 782 | return __ret < 0 ? -1 : __ret; |
| 717 | 783 | } |
| 718 | 784 | #endif |
| ... | ... | @@ -734,21 +800,8 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf); |
| 734 | 800 | # undef vsnwprintf |
| 735 | 801 | int __cdecl __ms_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...); |
| 736 | 802 | int __cdecl __ms_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list); |
| 737 | __mingw_ovr | |
| 738 | int snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...) | |
| 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 | } | |
| 803 | int __cdecl snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...) __MINGW_ASM_CALL(__ms_snwprintf); | |
| 804 | int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg) __MINGW_ASM_CALL(__ms_vsnwprintf); | |
| 752 | 805 | #pragma pop_macro ("vsnwprintf") |
| 753 | 806 | #pragma pop_macro ("snwprintf") |
| 754 | 807 | #endif |
| ... | ... | @@ -1078,7 +1131,15 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf); |
| 1078 | 1131 | #endif |
| 1079 | 1132 | #endif |
| 1080 | 1133 | |
| 1134 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 1135 | #pragma push_macro("_wtempnam") | |
| 1136 | #undef _wtempnam | |
| 1137 | #endif | |
| 1081 | 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 | 1143 | #ifndef _UCRT |
| 1083 | 1144 | _CRTIMP int __cdecl _vscwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList); |
| 1084 | 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 | 1245 | #ifndef _POSIX_ |
| 1185 | 1246 | #ifndef _WSTDLIBP_DEFINED |
| 1186 | 1247 | #define _WSTDLIBP_DEFINED |
| 1248 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 1249 | #pragma push_macro("_wfullpath") | |
| 1250 | #undef _wfullpath | |
| 1251 | #endif | |
| 1187 | 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 | 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 | 1257 | #ifndef _CRT_WPERROR_DEFINED |
| 1190 | 1258 | #define _CRT_WPERROR_DEFINED |
| ... | ... | @@ -1198,7 +1266,14 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf); |
| 1198 | 1266 | |
| 1199 | 1267 | #ifndef _WSTRING_DEFINED |
| 1200 | 1268 | #define _WSTRING_DEFINED |
| 1269 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 1270 | #pragma push_macro("_wcsdup") | |
| 1271 | #undef _wcsdup | |
| 1272 | #endif | |
| 1201 | 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 | 1277 | wchar_t *__cdecl wcscat(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Source) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; |
| 1203 | 1278 | _CONST_RETURN wchar_t *__cdecl wcschr(const wchar_t *_Str,wchar_t _Ch); |
| 1204 | 1279 | int __cdecl wcscmp(const wchar_t *_Str1,const wchar_t *_Str2); |
| ... | ... | @@ -1247,7 +1322,14 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf); |
| 1247 | 1322 | _CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale); |
| 1248 | 1323 | |
| 1249 | 1324 | #ifndef	NO_OLDNAMES |
| 1325 | #if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) | |
| 1326 | #pragma push_macro("wcsdup") | |
| 1327 | #undef wcsdup | |
| 1328 | #endif | |
| 1250 | 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 | 1333 | #define wcswcs wcsstr |
| 1252 | 1334 | int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005; |
| 1253 | 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 | /*** 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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/weakreference.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wia.h+22-1029| ... | ... | @@ -1,1035 +1,28 @@ |
| 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. | |
| 1 | /* | |
| 2 | * Copyright (C) 2009 Damjan Jovanovic | |
| 3 | * | |
| 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__ | |
| 27 | typedef struct IWiaDevMgr IWiaDevMgr; | |
| 28 | #endif | |
| 29 | ||
| 30 | #ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__ | |
| 31 | #define __IEnumWIA_DEV_INFO_FWD_DEFINED__ | |
| 32 | typedef struct IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO; | |
| 33 | #endif | |
| 34 | ||
| 35 | #ifndef __IWiaEventCallback_FWD_DEFINED__ | |
| 36 | #define __IWiaEventCallback_FWD_DEFINED__ | |
| 37 | typedef struct IWiaEventCallback IWiaEventCallback; | |
| 38 | #endif | |
| 39 | ||
| 40 | #ifndef __IWiaDataCallback_FWD_DEFINED__ | |
| 41 | #define __IWiaDataCallback_FWD_DEFINED__ | |
| 42 | typedef struct IWiaDataCallback IWiaDataCallback; | |
| 43 | #endif | |
| 44 | ||
| 45 | #ifndef __IWiaDataTransfer_FWD_DEFINED__ | |
| 46 | #define __IWiaDataTransfer_FWD_DEFINED__ | |
| 47 | typedef struct IWiaDataTransfer IWiaDataTransfer; | |
| 48 | #endif | |
| 49 | ||
| 50 | #ifndef __IWiaItem_FWD_DEFINED__ | |
| 51 | #define __IWiaItem_FWD_DEFINED__ | |
| 52 | typedef struct IWiaItem IWiaItem; | |
| 53 | #endif | |
| 54 | ||
| 55 | #ifndef __IWiaPropertyStorage_FWD_DEFINED__ | |
| 56 | #define __IWiaPropertyStorage_FWD_DEFINED__ | |
| 57 | typedef struct IWiaPropertyStorage IWiaPropertyStorage; | |
| 58 | #endif | |
| 59 | ||
| 60 | #ifndef __IEnumWiaItem_FWD_DEFINED__ | |
| 61 | #define __IEnumWiaItem_FWD_DEFINED__ | |
| 62 | typedef struct IEnumWiaItem IEnumWiaItem; | |
| 63 | #endif | |
| 64 | ||
| 65 | #ifndef __IEnumWIA_DEV_CAPS_FWD_DEFINED__ | |
| 66 | #define __IEnumWIA_DEV_CAPS_FWD_DEFINED__ | |
| 67 | typedef struct IEnumWIA_DEV_CAPS IEnumWIA_DEV_CAPS; | |
| 68 | #endif | |
| 69 | ||
| 70 | #ifndef __IEnumWIA_FORMAT_INFO_FWD_DEFINED__ | |
| 71 | #define __IEnumWIA_FORMAT_INFO_FWD_DEFINED__ | |
| 72 | typedef struct IEnumWIA_FORMAT_INFO IEnumWIA_FORMAT_INFO; | |
| 73 | #endif | |
| 74 | ||
| 75 | #ifndef __IWiaLog_FWD_DEFINED__ | |
| 76 | #define __IWiaLog_FWD_DEFINED__ | |
| 77 | typedef struct IWiaLog IWiaLog; | |
| 78 | #endif | |
| 79 | ||
| 80 | #ifndef __IWiaLogEx_FWD_DEFINED__ | |
| 81 | #define __IWiaLogEx_FWD_DEFINED__ | |
| 82 | typedef struct IWiaLogEx IWiaLogEx; | |
| 83 | #endif | |
| 84 | 18 | |
| 85 | #ifndef __IWiaNotifyDevMgr_FWD_DEFINED__ | |
| 86 | #define __IWiaNotifyDevMgr_FWD_DEFINED__ | |
| 87 | typedef struct IWiaNotifyDevMgr IWiaNotifyDevMgr; | |
| 88 | #endif | |
| 89 | ||
| 90 | #ifndef __IWiaItemExtras_FWD_DEFINED__ | |
| 91 | #define __IWiaItemExtras_FWD_DEFINED__ | |
| 92 | typedef struct IWiaItemExtras IWiaItemExtras; | |
| 93 | #endif | |
| 94 | ||
| 95 | #ifndef __WiaDevMgr_FWD_DEFINED__ | |
| 96 | #define __WiaDevMgr_FWD_DEFINED__ | |
| 97 | ||
| 98 | #ifdef __cplusplus | |
| 99 | typedef class WiaDevMgr WiaDevMgr; | |
| 100 | #else | |
| 101 | typedef struct WiaDevMgr WiaDevMgr; | |
| 102 | #endif | |
| 103 | #endif | |
| 104 | ||
| 105 | #ifndef __WiaLog_FWD_DEFINED__ | |
| 106 | #define __WiaLog_FWD_DEFINED__ | |
| 107 | 19 | |
| 108 | #ifdef __cplusplus | |
| 109 | typedef class WiaLog WiaLog; | |
| 110 | #else | |
| 111 | typedef struct WiaLog WiaLog; | |
| 20 | #ifdef __WINESRC__ | |
| 21 | #error Specify wia_lh.h or wia_xp.h explicitly in Wine | |
| 112 | 22 | #endif |
| 113 | #endif | |
| 114 | ||
| 115 | #include "unknwn.h" | |
| 116 | #include "oaidl.h" | |
| 117 | #include "propidl.h" | |
| 118 | ||
| 119 | #ifdef __cplusplus | |
| 120 | extern "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; | |
| 139 | 23 | |
| 140 | typedef struct _WIA_PROPID_TO_NAME { | |
| 141 | PROPID propid; | |
| 142 | LPOLESTR pszName; | |
| 143 | } WIA_PROPID_TO_NAME; | |
| 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 | |
| 24 | #if (_WIN32_WINNT >= 0x0600) | |
| 25 | #include <wia_lh.h> | |
| 26 | #elif (_WIN32_WINNT >= 0x0501) | |
| 27 | #include <wia_xp.h> | |
| 1035 | 28 | #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__ | |
| 23 | typedef interface IWiaDevMgr IWiaDevMgr; | |
| 24 | #ifdef __cplusplus | |
| 25 | interface IWiaDevMgr; | |
| 26 | #endif /* __cplusplus */ | |
| 27 | #endif | |
| 28 | ||
| 29 | #ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__ | |
| 30 | #define __IEnumWIA_DEV_INFO_FWD_DEFINED__ | |
| 31 | typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO; | |
| 32 | #ifdef __cplusplus | |
| 33 | interface IEnumWIA_DEV_INFO; | |
| 34 | #endif /* __cplusplus */ | |
| 35 | #endif | |
| 36 | ||
| 37 | #ifndef __IWiaPropertyStorage_FWD_DEFINED__ | |
| 38 | #define __IWiaPropertyStorage_FWD_DEFINED__ | |
| 39 | typedef interface IWiaPropertyStorage IWiaPropertyStorage; | |
| 40 | #ifdef __cplusplus | |
| 41 | interface IWiaPropertyStorage; | |
| 42 | #endif /* __cplusplus */ | |
| 43 | #endif | |
| 44 | ||
| 45 | #ifndef __IWiaItem_FWD_DEFINED__ | |
| 46 | #define __IWiaItem_FWD_DEFINED__ | |
| 47 | typedef interface IWiaItem IWiaItem; | |
| 48 | #ifdef __cplusplus | |
| 49 | interface IWiaItem; | |
| 50 | #endif /* __cplusplus */ | |
| 51 | #endif | |
| 52 | ||
| 53 | #ifndef __IWiaEventCallback_FWD_DEFINED__ | |
| 54 | #define __IWiaEventCallback_FWD_DEFINED__ | |
| 55 | typedef interface IWiaEventCallback IWiaEventCallback; | |
| 56 | #ifdef __cplusplus | |
| 57 | interface IWiaEventCallback; | |
| 58 | #endif /* __cplusplus */ | |
| 59 | #endif | |
| 60 | ||
| 61 | #ifndef __IEnumWIA_DEV_CAPS_FWD_DEFINED__ | |
| 62 | #define __IEnumWIA_DEV_CAPS_FWD_DEFINED__ | |
| 63 | typedef interface IEnumWIA_DEV_CAPS IEnumWIA_DEV_CAPS; | |
| 64 | #ifdef __cplusplus | |
| 65 | interface IEnumWIA_DEV_CAPS; | |
| 66 | #endif /* __cplusplus */ | |
| 67 | #endif | |
| 68 | ||
| 69 | #ifndef __IWiaTransferCallback_FWD_DEFINED__ | |
| 70 | #define __IWiaTransferCallback_FWD_DEFINED__ | |
| 71 | typedef interface IWiaTransferCallback IWiaTransferCallback; | |
| 72 | #ifdef __cplusplus | |
| 73 | interface IWiaTransferCallback; | |
| 74 | #endif /* __cplusplus */ | |
| 75 | #endif | |
| 76 | ||
| 77 | #ifndef __IWiaPreview_FWD_DEFINED__ | |
| 78 | #define __IWiaPreview_FWD_DEFINED__ | |
| 79 | typedef interface IWiaPreview IWiaPreview; | |
| 80 | #ifdef __cplusplus | |
| 81 | interface IWiaPreview; | |
| 82 | #endif /* __cplusplus */ | |
| 83 | #endif | |
| 84 | ||
| 85 | #ifndef __IEnumWiaItem2_FWD_DEFINED__ | |
| 86 | #define __IEnumWiaItem2_FWD_DEFINED__ | |
| 87 | typedef interface IEnumWiaItem2 IEnumWiaItem2; | |
| 88 | #ifdef __cplusplus | |
| 89 | interface IEnumWiaItem2; | |
| 90 | #endif /* __cplusplus */ | |
| 91 | #endif | |
| 92 | ||
| 93 | #ifndef __IWiaItem2_FWD_DEFINED__ | |
| 94 | #define __IWiaItem2_FWD_DEFINED__ | |
| 95 | typedef interface IWiaItem2 IWiaItem2; | |
| 96 | #ifdef __cplusplus | |
| 97 | interface IWiaItem2; | |
| 98 | #endif /* __cplusplus */ | |
| 99 | #endif | |
| 100 | ||
| 101 | #ifndef __IWiaDevMgr2_FWD_DEFINED__ | |
| 102 | #define __IWiaDevMgr2_FWD_DEFINED__ | |
| 103 | typedef interface IWiaDevMgr2 IWiaDevMgr2; | |
| 104 | #ifdef __cplusplus | |
| 105 | interface IWiaDevMgr2; | |
| 106 | #endif /* __cplusplus */ | |
| 107 | #endif | |
| 108 | ||
| 109 | #ifndef __WiaDevMgr2_FWD_DEFINED__ | |
| 110 | #define __WiaDevMgr2_FWD_DEFINED__ | |
| 111 | #ifdef __cplusplus | |
| 112 | typedef class WiaDevMgr2 WiaDevMgr2; | |
| 113 | #else | |
| 114 | typedef 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 | |
| 125 | extern "C" { | |
| 126 | #endif | |
| 127 | ||
| 128 | typedef 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; | |
| 136 | typedef struct _WIA_DITHER_PATTERN_DATA *PWIA_DITHER_PATTERN_DATA; | |
| 137 | typedef struct _WIA_PROPID_TO_NAME { | |
| 138 | PROPID propid; | |
| 139 | LPOLESTR pszName; | |
| 140 | } WIA_PROPID_TO_NAME; | |
| 141 | typedef struct _WIA_PROPID_TO_NAME *PWIA_PROPID_TO_NAME; | |
| 142 | typedef struct _WIA_FORMAT_INFO { | |
| 143 | GUID guidFormatID; | |
| 144 | LONG lTymed; | |
| 145 | } WIA_FORMAT_INFO; | |
| 146 | typedef 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__ | |
| 150 | typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO; | |
| 151 | #ifdef __cplusplus | |
| 152 | interface IEnumWIA_DEV_INFO; | |
| 153 | #endif /* __cplusplus */ | |
| 154 | #endif | |
| 155 | ||
| 156 | #ifndef __IWiaPropertyStorage_FWD_DEFINED__ | |
| 157 | #define __IWiaPropertyStorage_FWD_DEFINED__ | |
| 158 | typedef interface IWiaPropertyStorage IWiaPropertyStorage; | |
| 159 | #ifdef __cplusplus | |
| 160 | interface IWiaPropertyStorage; | |
| 161 | #endif /* __cplusplus */ | |
| 162 | #endif | |
| 163 | ||
| 164 | #ifndef __IWiaItem_FWD_DEFINED__ | |
| 165 | #define __IWiaItem_FWD_DEFINED__ | |
| 166 | typedef interface IWiaItem IWiaItem; | |
| 167 | #ifdef __cplusplus | |
| 168 | interface IWiaItem; | |
| 169 | #endif /* __cplusplus */ | |
| 170 | #endif | |
| 171 | ||
| 172 | #ifndef __IWiaEventCallback_FWD_DEFINED__ | |
| 173 | #define __IWiaEventCallback_FWD_DEFINED__ | |
| 174 | typedef interface IWiaEventCallback IWiaEventCallback; | |
| 175 | #ifdef __cplusplus | |
| 176 | interface IWiaEventCallback; | |
| 177 | #endif /* __cplusplus */ | |
| 178 | #endif | |
| 179 | ||
| 180 | #ifndef __IEnumWIA_DEV_CAPS_FWD_DEFINED__ | |
| 181 | #define __IEnumWIA_DEV_CAPS_FWD_DEFINED__ | |
| 182 | typedef interface IEnumWIA_DEV_CAPS IEnumWIA_DEV_CAPS; | |
| 183 | #ifdef __cplusplus | |
| 184 | interface IEnumWIA_DEV_CAPS; | |
| 185 | #endif /* __cplusplus */ | |
| 186 | #endif | |
| 187 | ||
| 188 | #ifndef __IWiaTransferCallback_FWD_DEFINED__ | |
| 189 | #define __IWiaTransferCallback_FWD_DEFINED__ | |
| 190 | typedef interface IWiaTransferCallback IWiaTransferCallback; | |
| 191 | #ifdef __cplusplus | |
| 192 | interface IWiaTransferCallback; | |
| 193 | #endif /* __cplusplus */ | |
| 194 | #endif | |
| 195 | ||
| 196 | #ifndef __IWiaPreview_FWD_DEFINED__ | |
| 197 | #define __IWiaPreview_FWD_DEFINED__ | |
| 198 | typedef interface IWiaPreview IWiaPreview; | |
| 199 | #ifdef __cplusplus | |
| 200 | interface IWiaPreview; | |
| 201 | #endif /* __cplusplus */ | |
| 202 | #endif | |
| 203 | ||
| 204 | #ifndef __IEnumWiaItem2_FWD_DEFINED__ | |
| 205 | #define __IEnumWiaItem2_FWD_DEFINED__ | |
| 206 | typedef interface IEnumWiaItem2 IEnumWiaItem2; | |
| 207 | #ifdef __cplusplus | |
| 208 | interface IEnumWiaItem2; | |
| 209 | #endif /* __cplusplus */ | |
| 210 | #endif | |
| 211 | ||
| 212 | #ifndef __IWiaItem2_FWD_DEFINED__ | |
| 213 | #define __IWiaItem2_FWD_DEFINED__ | |
| 214 | typedef interface IWiaItem2 IWiaItem2; | |
| 215 | #ifdef __cplusplus | |
| 216 | interface IWiaItem2; | |
| 217 | #endif /* __cplusplus */ | |
| 218 | #endif | |
| 219 | ||
| 220 | #ifndef __IWiaDevMgr2_FWD_DEFINED__ | |
| 221 | #define __IWiaDevMgr2_FWD_DEFINED__ | |
| 222 | typedef interface IWiaDevMgr2 IWiaDevMgr2; | |
| 223 | #ifdef __cplusplus | |
| 224 | interface IWiaDevMgr2; | |
| 225 | #endif /* __cplusplus */ | |
| 226 | #endif | |
| 227 | ||
| 228 | DEFINE_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 | ||
| 235 | DEFINE_GUID(IID_IWiaDevMgr, 0x5eb2502a, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11); | |
| 236 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 237 | MIDL_INTERFACE("5eb2502a-8cf1-11d1-bf92-0060081ed811") | |
| 238 | IWiaDevMgr : 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 | |
| 304 | typedef 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 | ||
| 391 | interface 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 ***/ | |
| 413 | static inline HRESULT IWiaDevMgr_QueryInterface(IWiaDevMgr* This,REFIID riid,void **ppvObject) { | |
| 414 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 415 | } | |
| 416 | static inline ULONG IWiaDevMgr_AddRef(IWiaDevMgr* This) { | |
| 417 | return This->lpVtbl->AddRef(This); | |
| 418 | } | |
| 419 | static inline ULONG IWiaDevMgr_Release(IWiaDevMgr* This) { | |
| 420 | return This->lpVtbl->Release(This); | |
| 421 | } | |
| 422 | /*** IWiaDevMgr methods ***/ | |
| 423 | static inline HRESULT IWiaDevMgr_EnumDeviceInfo(IWiaDevMgr* This,LONG lFlag,IEnumWIA_DEV_INFO **ppIEnum) { | |
| 424 | return This->lpVtbl->EnumDeviceInfo(This,lFlag,ppIEnum); | |
| 425 | } | |
| 426 | static inline HRESULT IWiaDevMgr_CreateDevice(IWiaDevMgr* This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot) { | |
| 427 | return This->lpVtbl->CreateDevice(This,bstrDeviceID,ppWiaItemRoot); | |
| 428 | } | |
| 429 | static 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 | } | |
| 432 | static 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 | } | |
| 435 | static 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 | } | |
| 438 | static 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 | } | |
| 441 | static 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 | } | |
| 444 | static 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 | } | |
| 447 | static 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 | ||
| 464 | DEFINE_GUID(IID_IEnumWIA_DEV_INFO, 0x5e38b83c, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11); | |
| 465 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 466 | MIDL_INTERFACE("5e38b83c-8cf1-11d1-bf92-0060081ed811") | |
| 467 | IEnumWIA_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 | |
| 491 | typedef 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 | ||
| 531 | interface 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 ***/ | |
| 549 | static inline HRESULT IEnumWIA_DEV_INFO_QueryInterface(IEnumWIA_DEV_INFO* This,REFIID riid,void **ppvObject) { | |
| 550 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 551 | } | |
| 552 | static inline ULONG IEnumWIA_DEV_INFO_AddRef(IEnumWIA_DEV_INFO* This) { | |
| 553 | return This->lpVtbl->AddRef(This); | |
| 554 | } | |
| 555 | static inline ULONG IEnumWIA_DEV_INFO_Release(IEnumWIA_DEV_INFO* This) { | |
| 556 | return This->lpVtbl->Release(This); | |
| 557 | } | |
| 558 | /*** IEnumWIA_DEV_INFO methods ***/ | |
| 559 | static 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 | } | |
| 562 | static inline HRESULT IEnumWIA_DEV_INFO_Skip(IEnumWIA_DEV_INFO* This,ULONG celt) { | |
| 563 | return This->lpVtbl->Skip(This,celt); | |
| 564 | } | |
| 565 | static inline HRESULT IEnumWIA_DEV_INFO_Reset(IEnumWIA_DEV_INFO* This) { | |
| 566 | return This->lpVtbl->Reset(This); | |
| 567 | } | |
| 568 | static inline HRESULT IEnumWIA_DEV_INFO_Clone(IEnumWIA_DEV_INFO* This,IEnumWIA_DEV_INFO **ppIEnum) { | |
| 569 | return This->lpVtbl->Clone(This,ppIEnum); | |
| 570 | } | |
| 571 | static 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 | ||
| 588 | DEFINE_GUID(IID_IWiaPropertyStorage, 0x98b5e8a0, 0x29cc, 0x491a, 0xaa,0xc0, 0xe6,0xdb,0x4f,0xdc,0xce,0xb6); | |
| 589 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 590 | MIDL_INTERFACE("98b5e8a0-29cc-491a-aac0-e6db4fdcceb6") | |
| 591 | IWiaPropertyStorage : 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 | |
| 598 | typedef 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 | ||
| 616 | interface 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 ***/ | |
| 628 | static inline HRESULT IWiaPropertyStorage_QueryInterface(IWiaPropertyStorage* This,REFIID riid,void **ppvObject) { | |
| 629 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 630 | } | |
| 631 | static inline ULONG IWiaPropertyStorage_AddRef(IWiaPropertyStorage* This) { | |
| 632 | return This->lpVtbl->AddRef(This); | |
| 633 | } | |
| 634 | static 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 | ||
| 651 | DEFINE_GUID(IID_IWiaItem, 0x4db1ad10, 0x3391, 0x11d2, 0x9a,0x33, 0x00,0xc0,0x4f,0xa3,0x61,0x45); | |
| 652 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 653 | MIDL_INTERFACE("4db1ad10-3391-11d2-9a33-00c04fa36145") | |
| 654 | IWiaItem : 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 | |
| 661 | typedef 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 | ||
| 679 | interface 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 ***/ | |
| 691 | static inline HRESULT IWiaItem_QueryInterface(IWiaItem* This,REFIID riid,void **ppvObject) { | |
| 692 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 693 | } | |
| 694 | static inline ULONG IWiaItem_AddRef(IWiaItem* This) { | |
| 695 | return This->lpVtbl->AddRef(This); | |
| 696 | } | |
| 697 | static 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 | ||
| 714 | DEFINE_GUID(IID_IWiaEventCallback, 0xae6287b0, 0x0084, 0x11d2, 0x97,0x3b, 0x00,0xa0,0xc9,0x06,0x8f,0x2e); | |
| 715 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 716 | MIDL_INTERFACE("ae6287b0-0084-11d2-973b-00a0c9068f2e") | |
| 717 | IWiaEventCallback : 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 | |
| 734 | typedef 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 | ||
| 764 | interface 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 ***/ | |
| 778 | static inline HRESULT IWiaEventCallback_QueryInterface(IWiaEventCallback* This,REFIID riid,void **ppvObject) { | |
| 779 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 780 | } | |
| 781 | static inline ULONG IWiaEventCallback_AddRef(IWiaEventCallback* This) { | |
| 782 | return This->lpVtbl->AddRef(This); | |
| 783 | } | |
| 784 | static inline ULONG IWiaEventCallback_Release(IWiaEventCallback* This) { | |
| 785 | return This->lpVtbl->Release(This); | |
| 786 | } | |
| 787 | /*** IWiaEventCallback methods ***/ | |
| 788 | static 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 | ||
| 799 | typedef 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; | |
| 807 | typedef struct _WIA_DEV_CAP *PWIA_DEV_CAP; | |
| 808 | typedef struct _WIA_DEV_CAP WIA_EVENT_HANDLER; | |
| 809 | typedef 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 | ||
| 816 | DEFINE_GUID(IID_IEnumWIA_DEV_CAPS, 0x1fcc4287, 0xaca6, 0x11d2, 0xa0,0x93, 0x00,0xc0,0x4f,0x72,0xdc,0x3c); | |
| 817 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 818 | MIDL_INTERFACE("1fcc4287-aca6-11d2-a093-00c04f72dc3c") | |
| 819 | IEnumWIA_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 | |
| 843 | typedef 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 | ||
| 883 | interface 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 ***/ | |
| 901 | static inline HRESULT IEnumWIA_DEV_CAPS_QueryInterface(IEnumWIA_DEV_CAPS* This,REFIID riid,void **ppvObject) { | |
| 902 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 903 | } | |
| 904 | static inline ULONG IEnumWIA_DEV_CAPS_AddRef(IEnumWIA_DEV_CAPS* This) { | |
| 905 | return This->lpVtbl->AddRef(This); | |
| 906 | } | |
| 907 | static inline ULONG IEnumWIA_DEV_CAPS_Release(IEnumWIA_DEV_CAPS* This) { | |
| 908 | return This->lpVtbl->Release(This); | |
| 909 | } | |
| 910 | /*** IEnumWIA_DEV_CAPS methods ***/ | |
| 911 | static 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 | } | |
| 914 | static inline HRESULT IEnumWIA_DEV_CAPS_Skip(IEnumWIA_DEV_CAPS* This,ULONG celt) { | |
| 915 | return This->lpVtbl->Skip(This,celt); | |
| 916 | } | |
| 917 | static inline HRESULT IEnumWIA_DEV_CAPS_Reset(IEnumWIA_DEV_CAPS* This) { | |
| 918 | return This->lpVtbl->Reset(This); | |
| 919 | } | |
| 920 | static inline HRESULT IEnumWIA_DEV_CAPS_Clone(IEnumWIA_DEV_CAPS* This,IEnumWIA_DEV_CAPS **ppIEnum) { | |
| 921 | return This->lpVtbl->Clone(This,ppIEnum); | |
| 922 | } | |
| 923 | static 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 | ||
| 934 | typedef 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 | ||
| 946 | DEFINE_GUID(IID_IWiaTransferCallback, 0x27d4eaaf, 0x28a6, 0x4ca5, 0x9a,0xab, 0xe6,0x78,0x16,0x8b,0x95,0x27); | |
| 947 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 948 | MIDL_INTERFACE("27d4eaaf-28a6-4ca5-9aab-e678168b9527") | |
| 949 | IWiaTransferCallback : 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 | |
| 966 | typedef 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 | ||
| 997 | interface 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 ***/ | |
| 1012 | static inline HRESULT IWiaTransferCallback_QueryInterface(IWiaTransferCallback* This,REFIID riid,void **ppvObject) { | |
| 1013 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 1014 | } | |
| 1015 | static inline ULONG IWiaTransferCallback_AddRef(IWiaTransferCallback* This) { | |
| 1016 | return This->lpVtbl->AddRef(This); | |
| 1017 | } | |
| 1018 | static inline ULONG IWiaTransferCallback_Release(IWiaTransferCallback* This) { | |
| 1019 | return This->lpVtbl->Release(This); | |
| 1020 | } | |
| 1021 | /*** IWiaTransferCallback methods ***/ | |
| 1022 | static inline HRESULT IWiaTransferCallback_TransferCallback(IWiaTransferCallback* This,LONG lFlags,WiaTransferParams *pWiaTransferParams) { | |
| 1023 | return This->lpVtbl->TransferCallback(This,lFlags,pWiaTransferParams); | |
| 1024 | } | |
| 1025 | static 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 | ||
| 1042 | DEFINE_GUID(IID_IWiaPreview, 0x95c2b4fd, 0x33f2, 0x4d86, 0xad,0x40, 0x94,0x31,0xf0,0xdf,0x08,0xf7); | |
| 1043 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 1044 | MIDL_INTERFACE("95c2b4fd-33f2-4d86-ad40-9431f0df08f7") | |
| 1045 | IWiaPreview : 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 | |
| 1068 | typedef 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 | ||
| 1106 | interface 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 ***/ | |
| 1123 | static inline HRESULT IWiaPreview_QueryInterface(IWiaPreview* This,REFIID riid,void **ppvObject) { | |
| 1124 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 1125 | } | |
| 1126 | static inline ULONG IWiaPreview_AddRef(IWiaPreview* This) { | |
| 1127 | return This->lpVtbl->AddRef(This); | |
| 1128 | } | |
| 1129 | static inline ULONG IWiaPreview_Release(IWiaPreview* This) { | |
| 1130 | return This->lpVtbl->Release(This); | |
| 1131 | } | |
| 1132 | /*** IWiaPreview methods ***/ | |
| 1133 | static inline HRESULT IWiaPreview_GetNewPreview(IWiaPreview* This,LONG lFlags,IWiaItem2 *pWiaItem2,IWiaTransferCallback *pWiaTransferCallback) { | |
| 1134 | return This->lpVtbl->GetNewPreview(This,lFlags,pWiaItem2,pWiaTransferCallback); | |
| 1135 | } | |
| 1136 | static inline HRESULT IWiaPreview_UpdatePreview(IWiaPreview* This,LONG lFlags,IWiaItem2 *pChildWiaItem2,IWiaTransferCallback *pWiaTransferCallback) { | |
| 1137 | return This->lpVtbl->UpdatePreview(This,lFlags,pChildWiaItem2,pWiaTransferCallback); | |
| 1138 | } | |
| 1139 | static inline HRESULT IWiaPreview_DetectRegions(IWiaPreview* This,LONG lFlags) { | |
| 1140 | return This->lpVtbl->DetectRegions(This,lFlags); | |
| 1141 | } | |
| 1142 | static 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 | ||
| 1159 | DEFINE_GUID(IID_IEnumWiaItem2, 0x59970af4, 0xcd0d, 0x44d9, 0xab,0x24, 0x52,0x29,0x56,0x30,0xe5,0x82); | |
| 1160 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 1161 | MIDL_INTERFACE("59970af4-cd0d-44d9-ab24-52295630e582") | |
| 1162 | IEnumWiaItem2 : 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 | |
| 1186 | typedef 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 | ||
| 1226 | interface 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 ***/ | |
| 1244 | static inline HRESULT IEnumWiaItem2_QueryInterface(IEnumWiaItem2* This,REFIID riid,void **ppvObject) { | |
| 1245 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 1246 | } | |
| 1247 | static inline ULONG IEnumWiaItem2_AddRef(IEnumWiaItem2* This) { | |
| 1248 | return This->lpVtbl->AddRef(This); | |
| 1249 | } | |
| 1250 | static inline ULONG IEnumWiaItem2_Release(IEnumWiaItem2* This) { | |
| 1251 | return This->lpVtbl->Release(This); | |
| 1252 | } | |
| 1253 | /*** IEnumWiaItem2 methods ***/ | |
| 1254 | static inline HRESULT IEnumWiaItem2_Next(IEnumWiaItem2* This,ULONG cElt,IWiaItem2 **ppIWiaItem2,ULONG *pcEltFetched) { | |
| 1255 | return This->lpVtbl->Next(This,cElt,ppIWiaItem2,pcEltFetched); | |
| 1256 | } | |
| 1257 | static inline HRESULT IEnumWiaItem2_Skip(IEnumWiaItem2* This,ULONG cElt) { | |
| 1258 | return This->lpVtbl->Skip(This,cElt); | |
| 1259 | } | |
| 1260 | static inline HRESULT IEnumWiaItem2_Reset(IEnumWiaItem2* This) { | |
| 1261 | return This->lpVtbl->Reset(This); | |
| 1262 | } | |
| 1263 | static inline HRESULT IEnumWiaItem2_Clone(IEnumWiaItem2* This,IEnumWiaItem2 **ppIEnum) { | |
| 1264 | return This->lpVtbl->Clone(This,ppIEnum); | |
| 1265 | } | |
| 1266 | static 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 | ||
| 1283 | DEFINE_GUID(IID_IWiaItem2, 0x6cba0075, 0x1287, 0x407d, 0x9b,0x77, 0xcf,0x0e,0x03,0x04,0x35,0xcc); | |
| 1284 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 1285 | MIDL_INTERFACE("6cba0075-1287-407d-9b77-cf0e030435cc") | |
| 1286 | IWiaItem2 : 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 | |
| 1366 | typedef 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 | ||
| 1474 | interface 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 ***/ | |
| 1503 | static inline HRESULT IWiaItem2_QueryInterface(IWiaItem2* This,REFIID riid,void **ppvObject) { | |
| 1504 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 1505 | } | |
| 1506 | static inline ULONG IWiaItem2_AddRef(IWiaItem2* This) { | |
| 1507 | return This->lpVtbl->AddRef(This); | |
| 1508 | } | |
| 1509 | static inline ULONG IWiaItem2_Release(IWiaItem2* This) { | |
| 1510 | return This->lpVtbl->Release(This); | |
| 1511 | } | |
| 1512 | /*** IWiaItem2 methods ***/ | |
| 1513 | static 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 | } | |
| 1516 | static inline HRESULT IWiaItem2_DeleteItem(IWiaItem2* This,LONG lFlags) { | |
| 1517 | return This->lpVtbl->DeleteItem(This,lFlags); | |
| 1518 | } | |
| 1519 | static inline HRESULT IWiaItem2_EnumChildItems(IWiaItem2* This,const GUID *pCategoryGUID,IEnumWiaItem2 **ppIEnumWiaItem2) { | |
| 1520 | return This->lpVtbl->EnumChildItems(This,pCategoryGUID,ppIEnumWiaItem2); | |
| 1521 | } | |
| 1522 | static inline HRESULT IWiaItem2_FindItemByName(IWiaItem2* This,LONG lFlags,BSTR bstrFullItemName,IWiaItem2 **ppIWiaItem2) { | |
| 1523 | return This->lpVtbl->FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem2); | |
| 1524 | } | |
| 1525 | static inline HRESULT IWiaItem2_GetItemCategory(IWiaItem2* This,GUID *pItemCategoryGUID) { | |
| 1526 | return This->lpVtbl->GetItemCategory(This,pItemCategoryGUID); | |
| 1527 | } | |
| 1528 | static inline HRESULT IWiaItem2_GetItemType(IWiaItem2* This,LONG *pItemType) { | |
| 1529 | return This->lpVtbl->GetItemType(This,pItemType); | |
| 1530 | } | |
| 1531 | static 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 | } | |
| 1534 | static inline HRESULT IWiaItem2_DeviceCommand(IWiaItem2* This,LONG lFlags,const GUID *pCmdGUID,IWiaItem2 **ppIWiaItem2) { | |
| 1535 | return This->lpVtbl->DeviceCommand(This,lFlags,pCmdGUID,ppIWiaItem2); | |
| 1536 | } | |
| 1537 | static 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 | } | |
| 1540 | static 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 | } | |
| 1543 | static 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 | } | |
| 1546 | static inline HRESULT IWiaItem2_GetParentItem(IWiaItem2* This,IWiaItem2 **ppIWiaItem2) { | |
| 1547 | return This->lpVtbl->GetParentItem(This,ppIWiaItem2); | |
| 1548 | } | |
| 1549 | static inline HRESULT IWiaItem2_GetRootItem(IWiaItem2* This,IWiaItem2 **ppIWiaItem2) { | |
| 1550 | return This->lpVtbl->GetRootItem(This,ppIWiaItem2); | |
| 1551 | } | |
| 1552 | static inline HRESULT IWiaItem2_GetPreviewComponent(IWiaItem2* This,LONG lFlags,IWiaPreview **ppWiaPreview) { | |
| 1553 | return This->lpVtbl->GetPreviewComponent(This,lFlags,ppWiaPreview); | |
| 1554 | } | |
| 1555 | static 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 | } | |
| 1558 | static 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 | ||
| 1575 | DEFINE_GUID(IID_IWiaDevMgr2, 0x79c07cf1, 0xcbdd, 0x41ee, 0x8e,0xc3, 0xf0,0x00,0x80,0xca,0xda,0x7a); | |
| 1576 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 1577 | MIDL_INTERFACE("79c07cf1-cbdd-41ee-8ec3-f00080cada7a") | |
| 1578 | IWiaDevMgr2 : 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 | |
| 1643 | typedef 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 | ||
| 1728 | interface 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 ***/ | |
| 1749 | static inline HRESULT IWiaDevMgr2_QueryInterface(IWiaDevMgr2* This,REFIID riid,void **ppvObject) { | |
| 1750 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 1751 | } | |
| 1752 | static inline ULONG IWiaDevMgr2_AddRef(IWiaDevMgr2* This) { | |
| 1753 | return This->lpVtbl->AddRef(This); | |
| 1754 | } | |
| 1755 | static inline ULONG IWiaDevMgr2_Release(IWiaDevMgr2* This) { | |
| 1756 | return This->lpVtbl->Release(This); | |
| 1757 | } | |
| 1758 | /*** IWiaDevMgr2 methods ***/ | |
| 1759 | static inline HRESULT IWiaDevMgr2_EnumDeviceInfo(IWiaDevMgr2* This,LONG lFlags,IEnumWIA_DEV_INFO **ppIEnum) { | |
| 1760 | return This->lpVtbl->EnumDeviceInfo(This,lFlags,ppIEnum); | |
| 1761 | } | |
| 1762 | static inline HRESULT IWiaDevMgr2_CreateDevice(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,IWiaItem2 **ppWiaItem2Root) { | |
| 1763 | return This->lpVtbl->CreateDevice(This,lFlags,bstrDeviceID,ppWiaItem2Root); | |
| 1764 | } | |
| 1765 | static 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 | } | |
| 1768 | static 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 | } | |
| 1771 | static 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 | } | |
| 1774 | static 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 | } | |
| 1777 | static 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 | } | |
| 1780 | static 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 | ||
| 1795 | DEFINE_GUID(CLSID_WiaDevMgr2, 0xb6c292bc, 0x7c88, 0x41ee, 0x8b,0x54, 0x8e,0xc9,0x26,0x17,0xe5,0x99); | |
| 1796 | ||
| 1797 | #ifdef __cplusplus | |
| 1798 | class 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 | ||
| 1806 | ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *); | |
| 1807 | unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *); | |
| 1808 | unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *); | |
| 1809 | void __RPC_USER BSTR_UserFree (ULONG *, BSTR *); | |
| 1810 | ULONG __RPC_USER HWND_UserSize (ULONG *, ULONG, HWND *); | |
| 1811 | unsigned char * __RPC_USER HWND_UserMarshal (ULONG *, unsigned char *, HWND *); | |
| 1812 | unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *); | |
| 1813 | void __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__ | |
| 23 | typedef interface IWiaDevMgr IWiaDevMgr; | |
| 24 | #ifdef __cplusplus | |
| 25 | interface IWiaDevMgr; | |
| 26 | #endif /* __cplusplus */ | |
| 27 | #endif | |
| 28 | ||
| 29 | #ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__ | |
| 30 | #define __IEnumWIA_DEV_INFO_FWD_DEFINED__ | |
| 31 | typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO; | |
| 32 | #ifdef __cplusplus | |
| 33 | interface IEnumWIA_DEV_INFO; | |
| 34 | #endif /* __cplusplus */ | |
| 35 | #endif | |
| 36 | ||
| 37 | #ifndef __IWiaPropertyStorage_FWD_DEFINED__ | |
| 38 | #define __IWiaPropertyStorage_FWD_DEFINED__ | |
| 39 | typedef interface IWiaPropertyStorage IWiaPropertyStorage; | |
| 40 | #ifdef __cplusplus | |
| 41 | interface IWiaPropertyStorage; | |
| 42 | #endif /* __cplusplus */ | |
| 43 | #endif | |
| 44 | ||
| 45 | #ifndef __IWiaItem_FWD_DEFINED__ | |
| 46 | #define __IWiaItem_FWD_DEFINED__ | |
| 47 | typedef interface IWiaItem IWiaItem; | |
| 48 | #ifdef __cplusplus | |
| 49 | interface IWiaItem; | |
| 50 | #endif /* __cplusplus */ | |
| 51 | #endif | |
| 52 | ||
| 53 | #ifndef __IWiaEventCallback_FWD_DEFINED__ | |
| 54 | #define __IWiaEventCallback_FWD_DEFINED__ | |
| 55 | typedef interface IWiaEventCallback IWiaEventCallback; | |
| 56 | #ifdef __cplusplus | |
| 57 | interface 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 | |
| 68 | extern "C" { | |
| 69 | #endif | |
| 70 | ||
| 71 | #include <wiadef.h> | |
| 72 | #ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__ | |
| 73 | #define __IEnumWIA_DEV_INFO_FWD_DEFINED__ | |
| 74 | typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO; | |
| 75 | #ifdef __cplusplus | |
| 76 | interface IEnumWIA_DEV_INFO; | |
| 77 | #endif /* __cplusplus */ | |
| 78 | #endif | |
| 79 | ||
| 80 | #ifndef __IWiaPropertyStorage_FWD_DEFINED__ | |
| 81 | #define __IWiaPropertyStorage_FWD_DEFINED__ | |
| 82 | typedef interface IWiaPropertyStorage IWiaPropertyStorage; | |
| 83 | #ifdef __cplusplus | |
| 84 | interface IWiaPropertyStorage; | |
| 85 | #endif /* __cplusplus */ | |
| 86 | #endif | |
| 87 | ||
| 88 | #ifndef __IWiaItem_FWD_DEFINED__ | |
| 89 | #define __IWiaItem_FWD_DEFINED__ | |
| 90 | typedef interface IWiaItem IWiaItem; | |
| 91 | #ifdef __cplusplus | |
| 92 | interface IWiaItem; | |
| 93 | #endif /* __cplusplus */ | |
| 94 | #endif | |
| 95 | ||
| 96 | #ifndef __IWiaEventCallback_FWD_DEFINED__ | |
| 97 | #define __IWiaEventCallback_FWD_DEFINED__ | |
| 98 | typedef interface IWiaEventCallback IWiaEventCallback; | |
| 99 | #ifdef __cplusplus | |
| 100 | interface IWiaEventCallback; | |
| 101 | #endif /* __cplusplus */ | |
| 102 | #endif | |
| 103 | ||
| 104 | DEFINE_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 | ||
| 111 | DEFINE_GUID(IID_IWiaDevMgr, 0x5eb2502a, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11); | |
| 112 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 113 | MIDL_INTERFACE("5eb2502a-8cf1-11d1-bf92-0060081ed811") | |
| 114 | IWiaDevMgr : 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 | |
| 180 | typedef 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 | ||
| 267 | interface 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 ***/ | |
| 289 | static inline HRESULT IWiaDevMgr_QueryInterface(IWiaDevMgr* This,REFIID riid,void **ppvObject) { | |
| 290 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 291 | } | |
| 292 | static inline ULONG IWiaDevMgr_AddRef(IWiaDevMgr* This) { | |
| 293 | return This->lpVtbl->AddRef(This); | |
| 294 | } | |
| 295 | static inline ULONG IWiaDevMgr_Release(IWiaDevMgr* This) { | |
| 296 | return This->lpVtbl->Release(This); | |
| 297 | } | |
| 298 | /*** IWiaDevMgr methods ***/ | |
| 299 | static inline HRESULT IWiaDevMgr_EnumDeviceInfo(IWiaDevMgr* This,LONG lFlag,IEnumWIA_DEV_INFO **ppIEnum) { | |
| 300 | return This->lpVtbl->EnumDeviceInfo(This,lFlag,ppIEnum); | |
| 301 | } | |
| 302 | static inline HRESULT IWiaDevMgr_CreateDevice(IWiaDevMgr* This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot) { | |
| 303 | return This->lpVtbl->CreateDevice(This,bstrDeviceID,ppWiaItemRoot); | |
| 304 | } | |
| 305 | static 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 | } | |
| 308 | static 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 | } | |
| 311 | static 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 | } | |
| 314 | static 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 | } | |
| 317 | static 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 | } | |
| 320 | static 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 | } | |
| 323 | static 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 | ||
| 340 | DEFINE_GUID(IID_IEnumWIA_DEV_INFO, 0x5e38b83c, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11); | |
| 341 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 342 | MIDL_INTERFACE("5e38b83c-8cf1-11d1-bf92-0060081ed811") | |
| 343 | IEnumWIA_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 | |
| 367 | typedef 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 | ||
| 407 | interface 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 ***/ | |
| 425 | static inline HRESULT IEnumWIA_DEV_INFO_QueryInterface(IEnumWIA_DEV_INFO* This,REFIID riid,void **ppvObject) { | |
| 426 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 427 | } | |
| 428 | static inline ULONG IEnumWIA_DEV_INFO_AddRef(IEnumWIA_DEV_INFO* This) { | |
| 429 | return This->lpVtbl->AddRef(This); | |
| 430 | } | |
| 431 | static inline ULONG IEnumWIA_DEV_INFO_Release(IEnumWIA_DEV_INFO* This) { | |
| 432 | return This->lpVtbl->Release(This); | |
| 433 | } | |
| 434 | /*** IEnumWIA_DEV_INFO methods ***/ | |
| 435 | static 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 | } | |
| 438 | static inline HRESULT IEnumWIA_DEV_INFO_Skip(IEnumWIA_DEV_INFO* This,ULONG celt) { | |
| 439 | return This->lpVtbl->Skip(This,celt); | |
| 440 | } | |
| 441 | static inline HRESULT IEnumWIA_DEV_INFO_Reset(IEnumWIA_DEV_INFO* This) { | |
| 442 | return This->lpVtbl->Reset(This); | |
| 443 | } | |
| 444 | static inline HRESULT IEnumWIA_DEV_INFO_Clone(IEnumWIA_DEV_INFO* This,IEnumWIA_DEV_INFO **ppIEnum) { | |
| 445 | return This->lpVtbl->Clone(This,ppIEnum); | |
| 446 | } | |
| 447 | static 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 | ||
| 464 | DEFINE_GUID(IID_IWiaPropertyStorage, 0x98b5e8a0, 0x29cc, 0x491a, 0xaa,0xc0, 0xe6,0xdb,0x4f,0xdc,0xce,0xb6); | |
| 465 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 466 | MIDL_INTERFACE("98b5e8a0-29cc-491a-aac0-e6db4fdcceb6") | |
| 467 | IWiaPropertyStorage : 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 | |
| 474 | typedef 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 | ||
| 492 | interface 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 ***/ | |
| 504 | static inline HRESULT IWiaPropertyStorage_QueryInterface(IWiaPropertyStorage* This,REFIID riid,void **ppvObject) { | |
| 505 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 506 | } | |
| 507 | static inline ULONG IWiaPropertyStorage_AddRef(IWiaPropertyStorage* This) { | |
| 508 | return This->lpVtbl->AddRef(This); | |
| 509 | } | |
| 510 | static 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 | ||
| 527 | DEFINE_GUID(IID_IWiaItem, 0x4db1ad10, 0x3391, 0x11d2, 0x9a,0x33, 0x00,0xc0,0x4f,0xa3,0x61,0x45); | |
| 528 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 529 | MIDL_INTERFACE("4db1ad10-3391-11d2-9a33-00c04fa36145") | |
| 530 | IWiaItem : 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 | |
| 537 | typedef 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 | ||
| 555 | interface 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 ***/ | |
| 567 | static inline HRESULT IWiaItem_QueryInterface(IWiaItem* This,REFIID riid,void **ppvObject) { | |
| 568 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 569 | } | |
| 570 | static inline ULONG IWiaItem_AddRef(IWiaItem* This) { | |
| 571 | return This->lpVtbl->AddRef(This); | |
| 572 | } | |
| 573 | static 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 | ||
| 590 | DEFINE_GUID(IID_IWiaEventCallback, 0xae6287b0, 0x0084, 0x11d2, 0x97,0x3b, 0x00,0xa0,0xc9,0x06,0x8f,0x2e); | |
| 591 | #if defined(__cplusplus) && !defined(CINTERFACE) | |
| 592 | MIDL_INTERFACE("ae6287b0-0084-11d2-973b-00a0c9068f2e") | |
| 593 | IWiaEventCallback : 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 | |
| 610 | typedef 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 | ||
| 640 | interface 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 ***/ | |
| 654 | static inline HRESULT IWiaEventCallback_QueryInterface(IWiaEventCallback* This,REFIID riid,void **ppvObject) { | |
| 655 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | |
| 656 | } | |
| 657 | static inline ULONG IWiaEventCallback_AddRef(IWiaEventCallback* This) { | |
| 658 | return This->lpVtbl->AddRef(This); | |
| 659 | } | |
| 660 | static inline ULONG IWiaEventCallback_Release(IWiaEventCallback* This) { | |
| 661 | return This->lpVtbl->Release(This); | |
| 662 | } | |
| 663 | /*** IWiaEventCallback methods ***/ | |
| 664 | static 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 | ||
| 677 | ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *); | |
| 678 | unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *); | |
| 679 | unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *); | |
| 680 | void __RPC_USER BSTR_UserFree (ULONG *, BSTR *); | |
| 681 | ULONG __RPC_USER HWND_UserSize (ULONG *, ULONG, HWND *); | |
| 682 | unsigned char * __RPC_USER HWND_UserMarshal (ULONG *, unsigned char *, HWND *); | |
| 683 | unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *); | |
| 684 | void __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 | 12 | #include <objbase.h> |
| 13 | 13 | #endif |
| 14 | 14 | |
| 15 | #ifndef __wia_h__ | |
| 16 | #error Please include in front wia.h instead. | |
| 17 | #endif | |
| 18 | ||
| 19 | 15 | #ifdef __cplusplus |
| 20 | 16 | extern "C" { |
| 21 | 17 | #endif |
lib/libc/include/any-windows-any/wincodec.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wincodecsdk.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wincon.h+13-400| ... | ... | @@ -3,422 +3,35 @@ |
| 3 | 3 | * This file is part of the mingw-w64 runtime package. |
| 4 | 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| 5 | 5 | */ |
| 6 | ||
| 6 | 7 | #ifndef _WINCON_ |
| 7 | 8 | #define _WINCON_ |
| 8 | 9 | |
| 9 | #include <_mingw_unicode.h> | |
| 10 | ||
| 11 | 10 | #include <winapifamily.h> |
| 12 | 11 | |
| 13 | 12 | #ifdef __cplusplus |
| 14 | 13 | extern "C" { |
| 15 | 14 | #endif |
| 16 | 15 | |
| 17 | #define CONSOLE_REAL_OUTPUT_HANDLE (LongToHandle(-2)) | |
| 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; | |
| 16 | #include <wincontypes.h> | |
| 68 | 17 | |
| 69 | #define FROM_LEFT_1ST_BUTTON_PRESSED 0x1 | |
| 70 | #define RIGHTMOST_BUTTON_PRESSED 0x2 | |
| 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 | |
| 18 | #ifndef NOGDI | |
| 19 | #include <wingdi.h> | |
| 80 | 20 | #endif |
| 81 | 21 | |
| 82 | typedef struct _WINDOW_BUFFER_SIZE_RECORD { | |
| 83 | COORD dwSize; | |
| 84 | } WINDOW_BUFFER_SIZE_RECORD,*PWINDOW_BUFFER_SIZE_RECORD; | |
| 85 | ||
| 86 | typedef struct _MENU_EVENT_RECORD { | |
| 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) | |
| 22 | #ifndef NOAPISET | |
| 23 | #include <consoleapi.h> | |
| 24 | #include <consoleapi2.h> | |
| 25 | #include <consoleapi3.h> | |
| 26 | #endif | |
| 260 | 27 | |
| 261 | WINBASEAPI DWORD WINAPI GetConsoleTitleA(LPSTR lpConsoleTitle,DWORD nSize); | |
| 262 | WINBASEAPI DWORD WINAPI GetConsoleTitleW(LPWSTR lpConsoleTitle,DWORD nSize); | |
| 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); | |
| 28 | #define CONSOLE_REAL_OUTPUT_HANDLE (LongToHandle(-2)) | |
| 29 | #define CONSOLE_REAL_INPUT_HANDLE (LongToHandle(-3)) | |
| 269 | 30 | |
| 270 | 31 | #define CONSOLE_TEXTMODE_BUFFER 1 |
| 271 | 32 | |
| 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 | ||
| 301 | WINBASEAPI VOID WINAPI ExpungeConsoleCommandHistoryA(LPSTR ExeName); | |
| 302 | WINBASEAPI VOID WINAPI ExpungeConsoleCommandHistoryW(LPWSTR ExeName); | |
| 303 | #define ExpungeConsoleCommandHistory __MINGW_NAME_AW(ExpungeConsoleCommandHistory) | |
| 304 | ||
| 305 | WINBASEAPI WINBOOL WINAPI SetConsoleNumberOfCommandsA(DWORD Number, LPSTR ExeName); | |
| 306 | WINBASEAPI WINBOOL WINAPI SetConsoleNumberOfCommandsW(DWORD Number, LPWSTR ExeName); | |
| 307 | #define SetConsoleNumberOfCommands __MINGW_NAME_AW(SetConsoleNumberOfCommands) | |
| 308 | ||
| 309 | WINBASEAPI DWORD WINAPI GetConsoleCommandHistoryLengthA(LPSTR ExeName); | |
| 310 | WINBASEAPI DWORD WINAPI GetConsoleCommandHistoryLengthW(LPWSTR ExeName); | |
| 311 | #define GetConsoleCommandHistoryLength __MINGW_NAME_AW(GetConsoleCommandHistoryLength) | |
| 312 | ||
| 313 | WINBASEAPI DWORD WINAPI GetConsoleCommandHistoryA(LPSTR Commands, DWORD CommandBufferLength, LPSTR ExeName); | |
| 314 | WINBASEAPI DWORD WINAPI GetConsoleCommandHistoryW(LPWSTR Commands, DWORD CommandBufferLength, LPWSTR ExeName); | |
| 315 | #define GetConsoleCommandHistory __MINGW_NAME_AW(GetConsoleCommandHistory) | |
| 316 | ||
| 317 | #ifndef NOGDI | |
| 318 | ||
| 319 | typedef 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 | ||
| 328 | WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFontEx( | |
| 329 | HANDLE hConsoleOutput, | |
| 330 | WINBOOL bMaximumWindow, | |
| 331 | PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx | |
| 332 | ); | |
| 333 | ||
| 334 | WINBASEAPI 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 | ||
| 344 | typedef struct _CONSOLE_HISTORY_INFO { | |
| 345 | UINT cbSize; | |
| 346 | UINT HistoryBufferSize; | |
| 347 | UINT NumberOfHistoryBuffers; | |
| 348 | DWORD dwFlags; | |
| 349 | } CONSOLE_HISTORY_INFO, *PCONSOLE_HISTORY_INFO; | |
| 350 | ||
| 351 | typedef struct _CONSOLE_READCONSOLE_CONTROL { | |
| 352 | ULONG nLength; | |
| 353 | ULONG nInitialChars; | |
| 354 | ULONG dwCtrlWakeupMask; | |
| 355 | ULONG dwControlKeyState; | |
| 356 | } CONSOLE_READCONSOLE_CONTROL, *PCONSOLE_READCONSOLE_CONTROL; | |
| 357 | ||
| 358 | typedef 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 | ||
| 370 | WINBOOL WINAPI GetConsoleHistoryInfo( | |
| 371 | PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo | |
| 372 | ); | |
| 373 | ||
| 374 | #if (_WIN32_WINNT >= 0x0600) | |
| 375 | #define GetConsoleOriginalTitle __MINGW_NAME_AW(GetConsoleOriginalTitle) | |
| 376 | ||
| 377 | WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleA( | |
| 378 | LPSTR lpConsoleTitle, | |
| 379 | DWORD nSize | |
| 380 | ); | |
| 381 | ||
| 382 | WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleW( | |
| 383 | LPWSTR lpConsoleTitle, | |
| 384 | DWORD nSize | |
| 385 | ); | |
| 386 | #endif /* (_WIN32_WINNT >= 0x0600) */ | |
| 387 | ||
| 388 | WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfoEx( | |
| 389 | HANDLE hConsoleOutput, | |
| 390 | PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx | |
| 391 | ); | |
| 392 | ||
| 393 | WINBASEAPI WINBOOL WINAPI SetConsoleHistoryInfo( | |
| 394 | PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo | |
| 395 | ); | |
| 396 | ||
| 397 | WINBASEAPI 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 | ||
| 411 | typedef VOID* HPCON; | |
| 412 | ||
| 413 | WINBASEAPI HRESULT WINAPI CreatePseudoConsole(COORD size, HANDLE hInput, HANDLE hOutput, DWORD dwFlags, HPCON* phPC); | |
| 414 | WINBASEAPI HRESULT WINAPI ResizePseudoConsole(HPCON hPC, COORD size); | |
| 415 | WINBASEAPI VOID WINAPI ClosePseudoConsole(HPCON hPC); | |
| 416 | ||
| 417 | #endif /* NTDDI_WIN10_RS5 */ | |
| 418 | ||
| 419 | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ | |
| 420 | ||
| 421 | 33 | #ifdef __cplusplus |
| 422 | 34 | } |
| 423 | 35 | #endif |
| 424 | #endif | |
| 36 | ||
| 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 | |
| 13 | extern "C" { | |
| 14 | #endif | |
| 15 | ||
| 16 | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) | |
| 17 | ||
| 18 | typedef struct _COORD { | |
| 19 | SHORT X; | |
| 20 | SHORT Y; | |
| 21 | } COORD, *PCOORD; | |
| 22 | ||
| 23 | typedef struct _SMALL_RECT { | |
| 24 | SHORT Left; | |
| 25 | SHORT Top; | |
| 26 | SHORT Right; | |
| 27 | SHORT Bottom; | |
| 28 | } SMALL_RECT, *PSMALL_RECT; | |
| 29 | ||
| 30 | typedef 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 | ||
| 60 | typedef 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 | ||
| 80 | typedef struct _WINDOW_BUFFER_SIZE_RECORD { | |
| 81 | COORD dwSize; | |
| 82 | } WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD; | |
| 83 | ||
| 84 | typedef struct _MENU_EVENT_RECORD { | |
| 85 | UINT dwCommandId; | |
| 86 | } MENU_EVENT_RECORD, *PMENU_EVENT_RECORD; | |
| 87 | ||
| 88 | typedef struct _FOCUS_EVENT_RECORD { | |
| 89 | WINBOOL bSetFocus; | |
| 90 | } FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD; | |
| 91 | ||
| 92 | typedef 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 | ||
| 109 | typedef struct _CHAR_INFO { | |
| 110 | union { | |
| 111 | WCHAR UnicodeChar; | |
| 112 | CHAR AsciiChar; | |
| 113 | } Char; | |
| 114 | WORD Attributes; | |
| 115 | } CHAR_INFO, *PCHAR_INFO; | |
| 116 | ||
| 117 | typedef struct _CONSOLE_FONT_INFO { | |
| 118 | DWORD nFont; | |
| 119 | COORD dwFontSize; | |
| 120 | } CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO; | |
| 121 | ||
| 122 | typedef 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 | 48 | #endif |
| 49 | 49 | #endif /* _ARM64_ */ |
| 50 | 50 | |
| 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 | 58 | #if defined(__ia64__) && \ |
| 52 | 59 | !(defined(_X86_) || defined(__x86_64) || defined(_AMD64_) || defined (__arm__) || defined(__aarch64__)) |
| 53 | 60 | #if !defined(_IA64_) |
| ... | ... | @@ -1582,7 +1589,7 @@ __MINGW_CXX14_CONSTEXPR inline ENUMTYPE& operator ^= (ENUMTYPE& a, ENUMTYPE b) { |
| 1582 | 1589 | |
| 1583 | 1590 | #ifdef _AMD64_ |
| 1584 | 1591 | |
| 1585 | #if defined(__x86_64) && !defined(RC_INVOKED) | |
| 1592 | #if defined(__x86_64) && !defined(__arm64ec__) && !defined(RC_INVOKED) | |
| 1586 | 1593 | |
| 1587 | 1594 | #ifdef __cplusplus |
| 1588 | 1595 | extern "C" { |
| ... | ... | @@ -1782,7 +1789,7 @@ extern "C" { |
| 1782 | 1789 | #ifdef __cplusplus |
| 1783 | 1790 | } |
| 1784 | 1791 | #endif |
| 1785 | #endif /* defined(__x86_64) && !defined(RC_INVOKED) */ | |
| 1792 | #endif /* defined(__x86_64) && !defined(__arm64ec__) && !defined(RC_INVOKED) */ | |
| 1786 | 1793 | |
| 1787 | 1794 | #define EXCEPTION_READ_FAULT 0 |
| 1788 | 1795 | #define EXCEPTION_WRITE_FAULT 1 |
| ... | ... | @@ -2084,24 +2091,6 @@ extern "C" { |
| 2084 | 2091 | #define UNW_FLAG_EHANDLER 0x1 |
| 2085 | 2092 | #define UNW_FLAG_UHANDLER 0x2 |
| 2086 | 2093 | |
| 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 | 2094 | struct _DISPATCHER_CONTEXT; |
| 2106 | 2095 | typedef struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT; |
| 2107 | 2096 | typedef struct _DISPATCHER_CONTEXT *PDISPATCHER_CONTEXT; |
| ... | ... | @@ -2115,7 +2104,7 @@ extern "C" { |
| 2115 | 2104 | PCONTEXT ContextRecord; |
| 2116 | 2105 | PEXCEPTION_ROUTINE LanguageHandler; |
| 2117 | 2106 | PVOID HandlerData; |
| 2118 | PUNWIND_HISTORY_TABLE HistoryTable; | |
| 2107 | struct _UNWIND_HISTORY_TABLE *HistoryTable; | |
| 2119 | 2108 | ULONG ScopeIndex; |
| 2120 | 2109 | BOOLEAN ControlPcIsUnwound; |
| 2121 | 2110 | PBYTE NonVolatileRegisters; |
| ... | ... | @@ -2147,9 +2136,9 @@ extern "C" { |
| 2147 | 2136 | #endif /* _ARM_ */ |
| 2148 | 2137 | |
| 2149 | 2138 | |
| 2150 | #ifdef _ARM64_ | |
| 2139 | #if defined(_ARM64_) || defined(_ARM64EC_) | |
| 2151 | 2140 | |
| 2152 | #if defined(__aarch64__) && !defined(RC_INVOKED) | |
| 2141 | #if (defined(__aarch64__) || defined(__arm64ec__)) && !defined(RC_INVOKED) | |
| 2153 | 2142 | |
| 2154 | 2143 | #ifdef __cplusplus |
| 2155 | 2144 | extern "C" { |
| ... | ... | @@ -2219,33 +2208,51 @@ extern "C" { |
| 2219 | 2208 | #ifdef __cplusplus |
| 2220 | 2209 | } |
| 2221 | 2210 | #endif |
| 2222 | #endif /* defined(__aarch64__) && !defined(RC_INVOKED) */ | |
| 2211 | #endif /* (defined(__aarch64__) || defined(__arm64ec__)) && !defined(RC_INVOKED) */ | |
| 2223 | 2212 | |
| 2224 | 2213 | #define EXCEPTION_READ_FAULT 0 |
| 2225 | 2214 | #define EXCEPTION_WRITE_FAULT 1 |
| 2226 | 2215 | #define EXCEPTION_EXECUTE_FAULT 8 |
| 2216 | #endif /* defined(_ARM64_) || defined(_ARM64EC_) */ | |
| 2227 | 2217 | |
| 2228 | 2218 | #if !defined(RC_INVOKED) |
| 2229 | 2219 | |
| 2230 | #define CONTEXT_ARM64 0x400000 | |
| 2231 | #define CONTEXT_CONTROL (CONTEXT_ARM64 | 0x00000001) | |
| 2232 | #define CONTEXT_INTEGER (CONTEXT_ARM64 | 0x00000002) | |
| 2233 | #define CONTEXT_FLOATING_POINT (CONTEXT_ARM64 | 0x00000004) | |
| 2234 | #define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARM64 | 0x00000008) | |
| 2220 | #define CONTEXT_ARM64 0x400000 | |
| 2221 | #define CONTEXT_ARM64_CONTROL (CONTEXT_ARM64 | 0x00000001) | |
| 2222 | #define CONTEXT_ARM64_INTEGER (CONTEXT_ARM64 | 0x00000002) | |
| 2223 | #define CONTEXT_ARM64_FLOATING_POINT (CONTEXT_ARM64 | 0x00000004) | |
| 2224 | #define CONTEXT_ARM64_DEBUG_REGISTERS (CONTEXT_ARM64 | 0x00000008) | |
| 2225 | #define CONTEXT_ARM64_X18 (CONTEXT_ARM64 | 0x00000010) | |
| 2235 | 2226 | |
| 2236 | #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER) | |
| 2237 | #define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS) | |
| 2238 | 2227 | |
| 2239 | #define EXCEPTION_READ_FAULT 0 | |
| 2240 | #define EXCEPTION_WRITE_FAULT 1 | |
| 2241 | #define EXCEPTION_EXECUTE_FAULT 8 | |
| 2228 | #define CONTEXT_ARM64_FULL (CONTEXT_ARM64_CONTROL | CONTEXT_ARM64_INTEGER | CONTEXT_ARM64_FLOATING_POINT) | |
| 2229 | #define CONTEXT_ARM64_ALL (CONTEXT_ARM64_CONTROL | CONTEXT_ARM64_INTEGER | CONTEXT_ARM64_FLOATING_POINT | CONTEXT_ARM64_DEBUG_REGISTERS | CONTEXT_ARM64_X18) | |
| 2242 | 2230 | |
| 2243 | #define ARM64_MAX_BREAKPOINTS 8 | |
| 2244 | #define ARM64_MAX_WATCHPOINTS 2 | |
| 2231 | #define CONTEXT_ARM64_UNWOUND_TO_CALL 0x20000000 | |
| 2232 | ||
| 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_ */ | |
| 2245 | 2249 | |
| 2246 | 2250 | #endif /* !defined(RC_INVOKED) */ |
| 2247 | 2251 | |
| 2248 | typedef union _NEON128 { | |
| 2252 | #define ARM64_MAX_BREAKPOINTS 8 | |
| 2253 | #define ARM64_MAX_WATCHPOINTS 2 | |
| 2254 | ||
| 2255 | typedef union _ARM64_NT_NEON128 { | |
| 2249 | 2256 | struct |
| 2250 | 2257 | { |
| 2251 | 2258 | ULONGLONG Low; |
| ... | ... | @@ -2255,9 +2262,19 @@ extern "C" { |
| 2255 | 2262 | float S[4]; |
| 2256 | 2263 | WORD H[8]; |
| 2257 | 2264 | BYTE B[16]; |
| 2258 | } NEON128, *PNEON128; | |
| 2265 | } ARM64_NT_NEON128, *PARM64_NT_NEON128; | |
| 2259 | 2266 | |
| 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 | 2278 | ULONG ContextFlags; /* 000 */ |
| 2262 | 2279 | /* CONTEXT_INTEGER */ |
| 2263 | 2280 | ULONG Cpsr; /* 004 */ |
| ... | ... | @@ -2303,7 +2320,7 @@ extern "C" { |
| 2303 | 2320 | DWORD64 Sp; /* 100 */ |
| 2304 | 2321 | DWORD64 Pc; /* 108 */ |
| 2305 | 2322 | /* CONTEXT_FLOATING_POINT */ |
| 2306 | NEON128 V[32]; /* 110 */ | |
| 2323 | ARM64_NT_NEON128 V[32]; /* 110 */ | |
| 2307 | 2324 | DWORD Fpcr; /* 310 */ |
| 2308 | 2325 | DWORD Fpsr; /* 314 */ |
| 2309 | 2326 | /* CONTEXT_DEBUG_REGISTERS */ |
| ... | ... | @@ -2311,53 +2328,152 @@ extern "C" { |
| 2311 | 2328 | DWORD64 Bvr[ARM64_MAX_BREAKPOINTS]; /* 338 */ |
| 2312 | 2329 | DWORD Wcr[ARM64_MAX_WATCHPOINTS]; /* 378 */ |
| 2313 | 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 | ||
| 2315 | 2337 | |
| 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 | 2449 | typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION; |
| 2317 | 2450 | typedef PRUNTIME_FUNCTION (*PGET_RUNTIME_FUNCTION_CALLBACK)(DWORD64 ControlPc,PVOID Context); |
| 2451 | #endif | |
| 2318 | 2452 | |
| 2319 | 2453 | #define UNW_FLAG_NHANDLER 0x0 |
| 2320 | 2454 | #define UNW_FLAG_EHANDLER 0x1 |
| 2321 | 2455 | #define UNW_FLAG_UHANDLER 0x2 |
| 2322 | 2456 | |
| 2323 | #define UNWIND_HISTORY_TABLE_SIZE 12 | |
| 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 { | |
| 2457 | typedef struct _DISPATCHER_CONTEXT_ARM64 { | |
| 2346 | 2458 | ULONG_PTR ControlPc; |
| 2347 | 2459 | ULONG_PTR ImageBase; |
| 2348 | PRUNTIME_FUNCTION FunctionEntry; | |
| 2460 | PARM64_RUNTIME_FUNCTION FunctionEntry; | |
| 2349 | 2461 | ULONG_PTR EstablisherFrame; |
| 2350 | 2462 | ULONG_PTR TargetPc; |
| 2351 | PCONTEXT ContextRecord; | |
| 2463 | PARM64_NT_CONTEXT ContextRecord; | |
| 2352 | 2464 | PEXCEPTION_ROUTINE LanguageHandler; |
| 2353 | 2465 | PVOID HandlerData; |
| 2354 | PUNWIND_HISTORY_TABLE HistoryTable; | |
| 2466 | struct _UNWIND_HISTORY_TABLE *HistoryTable; | |
| 2355 | 2467 | ULONG ScopeIndex; |
| 2356 | 2468 | BOOLEAN ControlPcIsUnwound; |
| 2357 | 2469 | PBYTE NonVolatileRegisters; |
| 2358 | }; | |
| 2470 | } DISPATCHER_CONTEXT_ARM64, *PDISPATCHER_CONTEXT_ARM64; | |
| 2359 | 2471 | |
| 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 | 2477 | PDWORD64 X19; |
| 2362 | 2478 | PDWORD64 X20; |
| 2363 | 2479 | PDWORD64 X21; |
| ... | ... | @@ -2379,12 +2495,13 @@ extern "C" { |
| 2379 | 2495 | PDWORD64 D13; |
| 2380 | 2496 | PDWORD64 D14; |
| 2381 | 2497 | PDWORD64 D15; |
| 2382 | } KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS; | |
| 2498 | } KNONVOLATILE_CONTEXT_POINTERS_ARM64, *PKNONVOLATILE_CONTEXT_POINTERS_ARM64; | |
| 2383 | 2499 | |
| 2384 | #define OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME "OutOfProcessFunctionTableCallback" | |
| 2385 | ||
| 2386 | #endif /* _ARM64_ */ | |
| 2500 | #ifdef _ARM64_ | |
| 2501 | typedef KNONVOLATILE_CONTEXT_POINTERS_ARM64 KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS; | |
| 2502 | #endif | |
| 2387 | 2503 | |
| 2504 | #define OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME "OutOfProcessFunctionTableCallback" | |
| 2388 | 2505 | |
| 2389 | 2506 | #ifdef _X86_ |
| 2390 | 2507 | |
| ... | ... | @@ -2474,25 +2591,8 @@ __buildmemorybarrier() |
| 2474 | 2591 | #define PF_TEMPORAL_LEVEL_1 |
| 2475 | 2592 | #define PF_NON_TEMPORAL_LEVEL_ALL |
| 2476 | 2593 | |
| 2477 | #define PcTeb 0x18 | |
| 2478 | struct _TEB *NtCurrentTeb(void); | |
| 2479 | PVOID GetCurrentFiber(void); | |
| 2480 | PVOID GetFiberData(void); | |
| 2481 | ||
| 2482 | 2594 | #define DbgRaiseAssertionFailure __int2c |
| 2483 | 2595 | |
| 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 | 2596 | #endif /* defined(__i386__) && !defined(__x86_64) */ |
| 2497 | 2597 | |
| 2498 | 2598 | #define EXCEPTION_READ_FAULT 0 |
| ... | ... | @@ -2656,8 +2756,6 @@ __buildmemorybarrier() |
| 2656 | 2756 | #define UnsignedMultiplyHigh __UMULH |
| 2657 | 2757 | |
| 2658 | 2758 | ULONGLONG UnsignedMultiplyHigh(ULONGLONG Multiplier,ULONGLONG Multiplicand); |
| 2659 | #else /* __ia64__ */ | |
| 2660 | struct _TEB *NtCurrentTeb(void); | |
| 2661 | 2759 | #endif /* __ia64__ */ |
| 2662 | 2760 | #endif /* !defined(GENUTIL) && !defined(_GENIA64_) && defined(_IA64_) */ |
| 2663 | 2761 | |
| ... | ... | @@ -2976,30 +3074,10 @@ __buildmemorybarrier() |
| 2976 | 3074 | |
| 2977 | 3075 | #ifdef __x86_64__ |
| 2978 | 3076 | |
| 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 | 3077 | #define UNWIND_HISTORY_TABLE_NONE 0 |
| 2989 | 3078 | #define UNWIND_HISTORY_TABLE_GLOBAL 1 |
| 2990 | 3079 | #define UNWIND_HISTORY_TABLE_LOCAL 2 |
| 2991 | 3080 | |
| 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 | 3081 | /* http://msdn.microsoft.com/en-us/library/b6sf5kbd(VS.80).aspx */ |
| 3004 | 3082 | |
| 3005 | 3083 | struct _DISPATCHER_CONTEXT; |
| ... | ... | @@ -3016,11 +3094,31 @@ __buildmemorybarrier() |
| 3016 | 3094 | PEXCEPTION_ROUTINE LanguageHandler; |
| 3017 | 3095 | PVOID HandlerData; |
| 3018 | 3096 | /* http://www.nynaeve.net/?p=99 */ |
| 3019 | PUNWIND_HISTORY_TABLE HistoryTable; | |
| 3097 | struct _UNWIND_HISTORY_TABLE *HistoryTable; | |
| 3020 | 3098 | ULONG ScopeIndex; |
| 3021 | 3099 | ULONG Fill0; |
| 3022 | 3100 | }; |
| 3023 | 3101 | |
| 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 | 3122 | /* http://msdn.microsoft.com/en-us/library/ms680617(VS.85).aspx */ |
| 3025 | 3123 | |
| 3026 | 3124 | typedef struct _KNONVOLATILE_CONTEXT_POINTERS |
| ... | ... | @@ -5359,7 +5457,7 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS) |
| 5359 | 5457 | #define LTP_PC_SMT 0x1 |
| 5360 | 5458 | |
| 5361 | 5459 | typedef enum _PROCESSOR_CACHE_TYPE { |
| 5362 | CacheUnified,CacheInstruction,CacheData,CacheTrace | |
| 5460 | CacheUnified,CacheInstruction,CacheData,CacheTrace,CacheUnknown | |
| 5363 | 5461 | } PROCESSOR_CACHE_TYPE; |
| 5364 | 5462 | |
| 5365 | 5463 | #define CACHE_FULLY_ASSOCIATIVE 0xFF |
| ... | ... | @@ -5397,8 +5495,12 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS) |
| 5397 | 5495 | |
| 5398 | 5496 | typedef struct _NUMA_NODE_RELATIONSHIP { |
| 5399 | 5497 | DWORD NodeNumber; |
| 5400 | BYTE Reserved[20]; | |
| 5401 | GROUP_AFFINITY GroupMask; | |
| 5498 | BYTE Reserved[18]; | |
| 5499 | WORD GroupCount; | |
| 5500 | __C89_NAMELESS union { | |
| 5501 | GROUP_AFFINITY GroupMask; | |
| 5502 | GROUP_AFFINITY GroupMasks[ANYSIZE_ARRAY]; | |
| 5503 | }; | |
| 5402 | 5504 | } NUMA_NODE_RELATIONSHIP,*PNUMA_NODE_RELATIONSHIP; |
| 5403 | 5505 | |
| 5404 | 5506 | typedef struct _CACHE_RELATIONSHIP { |
| ... | ... | @@ -5407,8 +5509,12 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS) |
| 5407 | 5509 | WORD LineSize; |
| 5408 | 5510 | DWORD CacheSize; |
| 5409 | 5511 | PROCESSOR_CACHE_TYPE Type; |
| 5410 | BYTE Reserved[20]; | |
| 5411 | GROUP_AFFINITY GroupMask; | |
| 5512 | BYTE Reserved[18]; | |
| 5513 | WORD GroupCount; | |
| 5514 | __C89_NAMELESS union { | |
| 5515 | GROUP_AFFINITY GroupMask; | |
| 5516 | GROUP_AFFINITY GroupMasks[ANYSIZE_ARRAY]; | |
| 5517 | }; | |
| 5412 | 5518 | } CACHE_RELATIONSHIP,*PCACHE_RELATIONSHIP; |
| 5413 | 5519 | |
| 5414 | 5520 | typedef struct _PROCESSOR_GROUP_INFO { |
| ... | ... | @@ -8535,6 +8641,13 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS) |
| 8535 | 8641 | DWORD Reserved; |
| 8536 | 8642 | } IMAGE_RESOURCE_DATA_ENTRY,*PIMAGE_RESOURCE_DATA_ENTRY; |
| 8537 | 8643 | |
| 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 | 8651 | typedef struct { |
| 8539 | 8652 | DWORD Size; |
| 8540 | 8653 | DWORD TimeDateStamp; |
| ... | ... | @@ -8551,11 +8664,40 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS) |
| 8551 | 8664 | DWORD ProcessHeapFlags; |
| 8552 | 8665 | DWORD ProcessAffinityMask; |
| 8553 | 8666 | WORD CSDVersion; |
| 8554 | WORD Reserved1; | |
| 8667 | WORD DependentLoadFlags; | |
| 8555 | 8668 | DWORD EditList; |
| 8556 | 8669 | DWORD SecurityCookie; |
| 8557 | 8670 | DWORD SEHandlerTable; |
| 8558 | 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 | 8701 | } IMAGE_LOAD_CONFIG_DIRECTORY32,*PIMAGE_LOAD_CONFIG_DIRECTORY32; |
| 8560 | 8702 | |
| 8561 | 8703 | typedef struct { |
| ... | ... | @@ -8574,11 +8716,40 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS) |
| 8574 | 8716 | ULONGLONG ProcessAffinityMask; |
| 8575 | 8717 | DWORD ProcessHeapFlags; |
| 8576 | 8718 | WORD CSDVersion; |
| 8577 | WORD Reserved1; | |
| 8719 | WORD DependentLoadFlags; | |
| 8578 | 8720 | ULONGLONG EditList; |
| 8579 | 8721 | ULONGLONG SecurityCookie; |
| 8580 | 8722 | ULONGLONG SEHandlerTable; |
| 8581 | 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 | 8753 | } IMAGE_LOAD_CONFIG_DIRECTORY64,*PIMAGE_LOAD_CONFIG_DIRECTORY64; |
| 8583 | 8754 | |
| 8584 | 8755 | #ifdef _WIN64 |
| ... | ... | @@ -8886,6 +9057,27 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS) |
| 8886 | 9057 | } IMAGE_COR20_HEADER,*PIMAGE_COR20_HEADER; |
| 8887 | 9058 | #endif |
| 8888 | 9059 | |
| 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 | 9081 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 8890 | 9082 | NTSYSAPI WORD NTAPI RtlCaptureStackBackTrace (DWORD FramesToSkip, DWORD FramesToCapture, PVOID *BackTrace, PDWORD BackTraceHash); |
| 8891 | 9083 | #endif |
| ... | ... | @@ -8939,6 +9131,7 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS) |
| 8939 | 9131 | NTSYSAPI PRUNTIME_FUNCTION NTAPI RtlLookupFunctionEntry (DWORD64 ControlPc, PDWORD64 ImageBase, PUNWIND_HISTORY_TABLE HistoryTable); |
| 8940 | 9132 | NTSYSAPI VOID NTAPI RtlUnwindEx (PVOID TargetFrame, PVOID TargetIp, PEXCEPTION_RECORD ExceptionRecord, PVOID ReturnValue, PCONTEXT ContextRecord, PUNWIND_HISTORY_TABLE HistoryTable); |
| 8941 | 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 | 9135 | #endif |
| 8943 | 9136 | #if defined (__arm__) |
| 8944 | 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 | 9260 | #if !defined (__CRT__NO_INLINE) && !defined (__WIDL__) |
| 9068 | 9261 | __CRT_INLINE PVOID WINAPI RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt) { |
| 9069 | 9262 | volatile char *vptr =(volatile char *)ptr; |
| 9070 | #ifdef __x86_64 | |
| 9263 | #if defined(__x86_64__) && !defined(__arm64ec__) | |
| 9071 | 9264 | __stosb((PBYTE)((DWORD64)vptr),0,cnt); |
| 9072 | 9265 | #else |
| 9073 | 9266 | while(cnt) { |
| ... | ... | @@ -9652,8 +9845,8 @@ typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *); |
| 9652 | 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)); } |
| 9653 | 9846 | |
| 9654 | 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); | |
| 9656 | NTSYSAPI DWORD NTAPI RtlQueryHeapInformation(PVOID HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength,PSIZE_T ReturnLength); | |
| 9848 | NTSYSAPI LONG NTAPI RtlSetHeapInformation(PVOID HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength); | |
| 9849 | NTSYSAPI LONG NTAPI RtlQueryHeapInformation(PVOID HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength,PSIZE_T ReturnLength); | |
| 9657 | 9850 | DWORD NTAPI RtlMultipleAllocateHeap(PVOID HeapHandle,DWORD Flags,SIZE_T Size,DWORD Count,PVOID *Array); |
| 9658 | 9851 | DWORD NTAPI RtlMultipleFreeHeap(PVOID HeapHandle,DWORD Flags,DWORD Count,PVOID *Array); |
| 9659 | 9852 | |
| ... | ... | @@ -10152,38 +10345,55 @@ typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *); |
| 10152 | 10345 | FORCEINLINE VOID TpDestroyCallbackEnviron (PTP_CALLBACK_ENVIRON cbe) { UNREFERENCED_PARAMETER (cbe); } |
| 10153 | 10346 | #endif |
| 10154 | 10347 | |
| 10155 | #if defined(__x86_64) && !defined (__WIDL__) | |
| 10348 | #if !defined(__ia64__) && !defined (__WIDL__) | |
| 10156 | 10349 | struct _TEB *NtCurrentTeb(VOID); |
| 10157 | 10350 | PVOID GetCurrentFiber(VOID); |
| 10158 | 10351 | PVOID GetFiberData(VOID); |
| 10159 | FORCEINLINE struct _TEB *NtCurrentTeb(VOID) { return (struct _TEB *)__readgsqword(FIELD_OFFSET(NT_TIB,Self)); } | |
| 10160 | FORCEINLINE PVOID GetCurrentFiber(VOID) { return(PVOID)__readgsqword(FIELD_OFFSET(NT_TIB,FiberData)); } | |
| 10161 | FORCEINLINE PVOID GetFiberData(VOID) { | |
| 10162 | return *(PVOID *)GetCurrentFiber(); | |
| 10352 | ||
| 10353 | #if defined (__aarch64__) || defined(__arm64ec__) | |
| 10354 | register struct _TEB *__mingw_current_teb __asm__("x18"); | |
| 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 | |
| 10165 | 10394 | |
| 10166 | #if defined (__arm__) && !defined (__WIDL__) | |
| 10167 | struct _TEB *NtCurrentTeb (VOID); | |
| 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 */ | |
| 10395 | FORCEINLINE PVOID GetFiberData (VOID) { return *(void **)GetCurrentFiber (); } | |
| 10396 | #endif /* !defined(__ia64__) && !defined (__WIDL__) */ | |
| 10187 | 10397 | |
| 10188 | 10398 | #ifndef _NTTMAPI_ |
| 10189 | 10399 | #define _NTTMAPI_ |
lib/libc/include/any-windows-any/winnt.rh+218| ... | ... | @@ -16,84 +16,154 @@ |
| 16 | 16 | |
| 17 | 17 | #define LANG_AFRIKAANS 0x36 |
| 18 | 18 | #define LANG_ALBANIAN 0x1c |
| 19 | #define LANG_ALSATIAN 0x84 | |
| 20 | #define LANG_AMHARIC 0x5e | |
| 19 | 21 | #define LANG_ARABIC 0x01 |
| 20 | 22 | #define LANG_ARMENIAN 0x2b |
| 21 | 23 | #define LANG_ASSAMESE 0x4d |
| 22 | 24 | #define LANG_AZERI 0x2c |
| 25 | #define LANG_AZERBAIJANI 0x2c | |
| 26 | #define LANG_BANGLA 0x45 | |
| 27 | #define LANG_BASHKIR 0x6d | |
| 23 | 28 | #define LANG_BASQUE 0x2d |
| 24 | 29 | #define LANG_BELARUSIAN 0x23 |
| 25 | 30 | #define LANG_BENGALI 0x45 |
| 31 | #define LANG_BRETON 0x7e | |
| 32 | #define LANG_BOSNIAN 0x1a | |
| 33 | #define LANG_BOSNIAN_NEUTRAL 0x781a | |
| 26 | 34 | #define LANG_BULGARIAN 0x02 |
| 27 | 35 | #define LANG_CATALAN 0x03 |
| 36 | #define LANG_CENTRAL_KURDISH 0x92 | |
| 37 | #define LANG_CHEROKEE 0x5c | |
| 28 | 38 | #define LANG_CHINESE 0x04 |
| 39 | #define LANG_CHINESE_SIMPLIFIED 0x04 | |
| 40 | #define LANG_CHINESE_TRADITIONAL 0x7c04 | |
| 41 | #define LANG_CORSICAN 0x83 | |
| 29 | 42 | #define LANG_CROATIAN 0x1a |
| 30 | 43 | #define LANG_CZECH 0x05 |
| 31 | 44 | #define LANG_DANISH 0x06 |
| 45 | #define LANG_DARI 0x8c | |
| 32 | 46 | #define LANG_DIVEHI 0x65 |
| 33 | 47 | #define LANG_DUTCH 0x13 |
| 34 | 48 | #define LANG_ENGLISH 0x09 |
| 35 | 49 | #define LANG_ESTONIAN 0x25 |
| 36 | 50 | #define LANG_FAEROESE 0x38 |
| 37 | 51 | #define LANG_FARSI 0x29 |
| 52 | #define LANG_FILIPINO 0x64 | |
| 38 | 53 | #define LANG_FINNISH 0x0b |
| 39 | 54 | #define LANG_FRENCH 0x0c |
| 55 | #define LANG_FRISIAN 0x62 | |
| 56 | #define LANG_FULAH 0x67 | |
| 40 | 57 | #define LANG_GALICIAN 0x56 |
| 41 | 58 | #define LANG_GEORGIAN 0x37 |
| 42 | 59 | #define LANG_GERMAN 0x07 |
| 43 | 60 | #define LANG_GREEK 0x08 |
| 61 | #define LANG_GREENLANDIC 0x6f | |
| 44 | 62 | #define LANG_GUJARATI 0x47 |
| 63 | #define LANG_HAUSA 0x68 | |
| 64 | #define LANG_HAWAIIAN 0x75 | |
| 45 | 65 | #define LANG_HEBREW 0x0d |
| 46 | 66 | #define LANG_HINDI 0x39 |
| 47 | 67 | #define LANG_HUNGARIAN 0x0e |
| 48 | 68 | #define LANG_ICELANDIC 0x0f |
| 69 | #define LANG_IGBO 0x70 | |
| 49 | 70 | #define LANG_INDONESIAN 0x21 |
| 71 | #define LANG_INUKTITUT 0x5d | |
| 72 | #define LANG_IRISH 0x3c | |
| 50 | 73 | #define LANG_ITALIAN 0x10 |
| 51 | 74 | #define LANG_JAPANESE 0x11 |
| 52 | 75 | #define LANG_KANNADA 0x4b |
| 53 | 76 | #define LANG_KASHMIRI 0x60 |
| 54 | 77 | #define LANG_KAZAK 0x3f |
| 78 | #define LANG_KHMER 0x53 | |
| 79 | #define LANG_KICHE 0x86 | |
| 80 | #define LANG_KINYARWANDA 0x87 | |
| 55 | 81 | #define LANG_KONKANI 0x57 |
| 56 | 82 | #define LANG_KOREAN 0x12 |
| 57 | 83 | #define LANG_KYRGYZ 0x40 |
| 84 | #define LANG_LAO 0x54 | |
| 58 | 85 | #define LANG_LATVIAN 0x26 |
| 59 | 86 | #define LANG_LITHUANIAN 0x27 |
| 87 | #define LANG_LOWER_SORBIAN 0x2e | |
| 88 | #define LANG_LUXEMBOURGISH 0x6e | |
| 60 | 89 | #define LANG_MACEDONIAN 0x2f |
| 61 | 90 | #define LANG_MALAY 0x3e |
| 62 | 91 | #define LANG_MALAYALAM 0x4c |
| 92 | #define LANG_MALTESE 0x3a | |
| 63 | 93 | #define LANG_MANIPURI 0x58 |
| 94 | #define LANG_MAORI 0x81 | |
| 95 | #define LANG_MAPUDUNGUN 0x7a | |
| 64 | 96 | #define LANG_MARATHI 0x4e |
| 97 | #define LANG_MOHAWK 0x7c | |
| 65 | 98 | #define LANG_MONGOLIAN 0x50 |
| 66 | 99 | #define LANG_NEPALI 0x61 |
| 67 | 100 | #define LANG_NORWEGIAN 0x14 |
| 101 | #define LANG_OCCITAN 0x82 | |
| 102 | #define LANG_ODIA 0x48 | |
| 68 | 103 | #define LANG_ORIYA 0x48 |
| 104 | #define LANG_PASHTO 0x63 | |
| 105 | #define LANG_PERSIAN 0x29 | |
| 69 | 106 | #define LANG_POLISH 0x15 |
| 70 | 107 | #define LANG_PORTUGUESE 0x16 |
| 108 | #define LANG_PULAR 0x67 | |
| 71 | 109 | #define LANG_PUNJABI 0x46 |
| 110 | #define LANG_QUECHUA 0x6b | |
| 72 | 111 | #define LANG_ROMANIAN 0x18 |
| 112 | #define LANG_ROMANSH 0x17 | |
| 73 | 113 | #define LANG_RUSSIAN 0x19 |
| 114 | #define LANG_SAKHA 0x85 | |
| 115 | #define LANG_SAMI 0x3b | |
| 74 | 116 | #define LANG_SANSKRIT 0x4f |
| 117 | #define LANG_SCOTTISH_GAELIC 0x91 | |
| 75 | 118 | #define LANG_SERBIAN 0x1a |
| 119 | #define LANG_SERBIAN_NEUTRAL 0x7c1a | |
| 76 | 120 | #define LANG_SINDHI 0x59 |
| 121 | #define LANG_SINHALESE 0x5b | |
| 77 | 122 | #define LANG_SLOVAK 0x1b |
| 78 | 123 | #define LANG_SLOVENIAN 0x24 |
| 124 | #define LANG_SOTHO 0x6c | |
| 79 | 125 | #define LANG_SPANISH 0x0a |
| 80 | 126 | #define LANG_SWAHILI 0x41 |
| 81 | 127 | #define LANG_SWEDISH 0x1d |
| 82 | 128 | #define LANG_SYRIAC 0x5a |
| 129 | #define LANG_TAJIK 0x28 | |
| 130 | #define LANG_TAMAZIGHT 0x5f | |
| 83 | 131 | #define LANG_TAMIL 0x49 |
| 84 | 132 | #define LANG_TATAR 0x44 |
| 85 | 133 | #define LANG_TELUGU 0x4a |
| 86 | 134 | #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 | 139 | #define LANG_TURKISH 0x1f |
| 140 | #define LANG_TURKMEN 0x42 | |
| 141 | #define LANG_UIGHUR 0x80 | |
| 88 | 142 | #define LANG_UKRAINIAN 0x22 |
| 143 | #define LANG_UPPER_SORBIAN 0x2e | |
| 89 | 144 | #define LANG_URDU 0x20 |
| 90 | 145 | #define LANG_UZBEK 0x43 |
| 146 | #define LANG_VALENCIAN 0x03 | |
| 91 | 147 | #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 | |
| 92 | 155 | |
| 93 | 156 | #define SUBLANG_NEUTRAL 0x00 |
| 94 | 157 | #define SUBLANG_DEFAULT 0x01 |
| 95 | 158 | #define SUBLANG_SYS_DEFAULT 0x02 |
| 159 | #define SUBLANG_CUSTOM_DEFAULT 0x03 | |
| 160 | #define SUBLANG_CUSTOM_UNSPECIFIED 0x04 | |
| 161 | #define SUBLANG_UI_CUSTOM_DEFAULT 0x05 | |
| 96 | 162 | |
| 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 | 167 | #define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 |
| 98 | 168 | #define SUBLANG_ARABIC_IRAQ 0x02 |
| 99 | 169 | #define SUBLANG_ARABIC_EGYPT 0x03 |
| ... | ... | @@ -110,13 +180,38 @@ |
| 110 | 180 | #define SUBLANG_ARABIC_UAE 0x0e |
| 111 | 181 | #define SUBLANG_ARABIC_BAHRAIN 0x0f |
| 112 | 182 | #define SUBLANG_ARABIC_QATAR 0x10 |
| 183 | #define SUBLANG_ARMENIAN_ARMENIA 0x01 | |
| 184 | #define SUBLANG_ASSAMESE_INDIA 0x01 | |
| 113 | 185 | #define SUBLANG_AZERI_LATIN 0x01 |
| 114 | 186 | #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 | 203 | #define SUBLANG_CHINESE_TRADITIONAL 0x01 |
| 116 | 204 | #define SUBLANG_CHINESE_SIMPLIFIED 0x02 |
| 117 | 205 | #define SUBLANG_CHINESE_HONGKONG 0x03 |
| 118 | 206 | #define SUBLANG_CHINESE_SINGAPORE 0x04 |
| 119 | 207 | #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 | 215 | #define SUBLANG_DUTCH 0x01 |
| 121 | 216 | #define SUBLANG_DUTCH_BELGIAN 0x02 |
| 122 | 217 | #define SUBLANG_ENGLISH_US 0x01 |
| ... | ... | @@ -132,32 +227,120 @@ |
| 132 | 227 | #define SUBLANG_ENGLISH_TRINIDAD 0x0b |
| 133 | 228 | #define SUBLANG_ENGLISH_ZIMBABWE 0x0c |
| 134 | 229 | #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 | 237 | #define SUBLANG_FRENCH 0x01 |
| 136 | 238 | #define SUBLANG_FRENCH_BELGIAN 0x02 |
| 137 | 239 | #define SUBLANG_FRENCH_CANADIAN 0x03 |
| 138 | 240 | #define SUBLANG_FRENCH_SWISS 0x04 |
| 139 | 241 | #define SUBLANG_FRENCH_LUXEMBOURG 0x05 |
| 140 | 242 | #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 | 247 | #define SUBLANG_GERMAN 0x01 |
| 142 | 248 | #define SUBLANG_GERMAN_SWISS 0x02 |
| 143 | 249 | #define SUBLANG_GERMAN_AUSTRIAN 0x03 |
| 144 | 250 | #define SUBLANG_GERMAN_LUXEMBOURG 0x04 |
| 145 | 251 | #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 | 266 | #define SUBLANG_ITALIAN 0x01 |
| 147 | 267 | #define SUBLANG_ITALIAN_SWISS 0x02 |
| 268 | #define SUBLANG_JAPANESE_JAPAN 0x01 | |
| 269 | #define SUBLANG_KANNADA_INDIA 0x01 | |
| 148 | 270 | #define SUBLANG_KASHMIRI_SASIA 0x02 |
| 149 | 271 | #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 | 277 | #define SUBLANG_KOREAN 0x01 |
| 278 | #define SUBLANG_KYRGYZ_KYRGYZSTAN 0x01 | |
| 279 | #define SUBLANG_LAO_LAO 0x01 | |
| 280 | #define SUBLANG_LATVIAN_LATVIA 0x01 | |
| 151 | 281 | #define SUBLANG_LITHUANIAN 0x01 |
| 282 | #define SUBLANG_LOWER_SORBIAN_GERMANY 0x02 | |
| 283 | #define SUBLANG_LUXEMBOURGISH_LUXEMBOURG 0x01 | |
| 284 | #define SUBLANG_MACEDONIAN_MACEDONIA 0x01 | |
| 152 | 285 | #define SUBLANG_MALAY_MALAYSIA 0x01 |
| 153 | 286 | #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 | 295 | #define SUBLANG_NEPALI_INDIA 0x02 |
| 296 | #define SUBLANG_NEPALI_NEPAL 0x01 | |
| 155 | 297 | #define SUBLANG_NORWEGIAN_BOKMAL 0x01 |
| 156 | 298 | #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 | 305 | #define SUBLANG_PORTUGUESE 0x02 |
| 158 | 306 | #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 | 335 | #define SUBLANG_SERBIAN_LATIN 0x02 |
| 160 | 336 | #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 | 344 | #define SUBLANG_SPANISH 0x01 |
| 162 | 345 | #define SUBLANG_SPANISH_MEXICAN 0x02 |
| 163 | 346 | #define SUBLANG_SPANISH_MODERN 0x03 |
| ... | ... | @@ -178,23 +361,58 @@ |
| 178 | 361 | #define SUBLANG_SPANISH_HONDURAS 0x12 |
| 179 | 362 | #define SUBLANG_SPANISH_NICARAGUA 0x13 |
| 180 | 363 | #define SUBLANG_SPANISH_PUERTO_RICO 0x14 |
| 364 | #define SUBLANG_SPANISH_US 0x15 | |
| 365 | #define SUBLANG_SWAHILI_KENYA 0x01 | |
| 181 | 366 | #define SUBLANG_SWEDISH 0x01 |
| 182 | 367 | #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 | 388 | #define SUBLANG_URDU_PAKISTAN 0x01 |
| 184 | 389 | #define SUBLANG_URDU_INDIA 0x02 |
| 185 | 390 | #define SUBLANG_UZBEK_LATIN 0x01 |
| 186 | 391 | #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 | |
| 187 | 401 | |
| 188 | 402 | #define SORT_DEFAULT 0x0 |
| 189 | 403 | |
| 404 | #define SORT_INVARIANT_MATH 0x1 | |
| 405 | ||
| 190 | 406 | #define SORT_JAPANESE_XJIS 0x0 |
| 191 | 407 | #define SORT_JAPANESE_UNICODE 0x1 |
| 408 | #define SORT_JAPANESE_RADICALSTROKE 0x4 | |
| 192 | 409 | |
| 193 | 410 | #define SORT_CHINESE_BIG5 0x0 |
| 194 | 411 | #define SORT_CHINESE_PRCP 0x0 |
| 195 | 412 | #define SORT_CHINESE_UNICODE 0x1 |
| 196 | 413 | #define SORT_CHINESE_PRC 0x2 |
| 197 | 414 | #define SORT_CHINESE_BOPOMOFO 0x3 |
| 415 | #define SORT_CHINESE_RADICALSTROKE 0x4 | |
| 198 | 416 | |
| 199 | 417 | #define SORT_KOREAN_KSC 0x0 |
| 200 | 418 | #define SORT_KOREAN_UNICODE 0x1 |
lib/libc/include/any-windows-any/wmcodecdsp.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wmcontainer.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wmdrmsdk.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wmp.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wmprealestate.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wmpservices.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wmsbuffer.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wmsdkidl.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wmsecure.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wpcapi.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wsdattachment.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wsdbase.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wsdclient.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wsddisco.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wsdhost.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wsdxml.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wsmandisp.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wtypes.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wtypesbase.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/wuapi.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/xamlom.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/xapo.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/xaudio2.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/xaudio2fx.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/xmllite.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/xpsdigitalsignature.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/xpsobjectmodel.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/xpsobjectmodel_1.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/xpsprint.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/include/any-windows-any/xpsrassvc.h+1-1| ... | ... | @@ -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 ***/ | |
| 2 | 2 | |
| 3 | 3 | #ifdef _WIN32 |
| 4 | 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
lib/libc/mingw/crt/cinitexe.c+3-4| ... | ... | @@ -1,13 +1,12 @@ |
| 1 | 1 | #include <stdio.h> |
| 2 | 2 | #include <sect_attribs.h> |
| 3 | #include <corecrt_startup.h> | |
| 3 | 4 | |
| 4 | 5 | #ifdef _MSC_VER |
| 5 | 6 | #pragma comment(linker, "/merge:.CRT=.rdata") |
| 6 | 7 | #endif |
| 7 | 8 | |
| 8 | typedef void (__cdecl *_PVFV)(void); | |
| 9 | ||
| 10 | _CRTALLOC(".CRT$XIA") _PVFV __xi_a[] = { NULL }; | |
| 11 | _CRTALLOC(".CRT$XIZ") _PVFV __xi_z[] = { NULL }; | |
| 9 | _CRTALLOC(".CRT$XIA") _PIFV __xi_a[] = { NULL }; | |
| 10 | _CRTALLOC(".CRT$XIZ") _PIFV __xi_z[] = { NULL }; | |
| 12 | 11 | _CRTALLOC(".CRT$XCA") _PVFV __xc_a[] = { NULL }; |
| 13 | 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 | 51 | if (_FindPESectionByName (".pdata") != NULL) |
| 52 | 52 | return 1; |
| 53 | 53 | |
| 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 | 54 | e = 0; |
| 59 | 55 | /* Fill tables and entries. */ |
| 60 | 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 | 97 | 	{ |
| 98 | 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 | 103 | if (__native_startup_state == __initializing) |
| 103 | 104 | 	{ |
| ... | ... | @@ -147,15 +148,15 @@ WINBOOL WINAPI |
| 147 | 148 | DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved) |
| 148 | 149 | { |
| 149 | 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 | 151 | return __DllMainCRTStartup (hDllHandle, dwReason, lpreserved); |
| 157 | 152 | } |
| 158 | 153 | |
| 154 | static | |
| 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 | 160 | __declspec(noinline) WINBOOL |
| 160 | 161 | __DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved) |
| 161 | 162 | { |
| ... | ... | @@ -168,6 +169,12 @@ __DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved) |
| 168 | 169 | 	goto i__leave; |
| 169 | 170 | } |
| 170 | 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 | 178 | if (dwReason == DLL_PROCESS_ATTACH || dwReason == DLL_THREAD_ATTACH) |
| 172 | 179 | { |
| 173 | 180 | retcode = _CRT_INIT (hDllHandle, dwReason, lpreserved); |
lib/libc/mingw/crt/crtexe.c+13-6| ... | ... | @@ -58,11 +58,9 @@ extern void __main(void); |
| 58 | 58 | static _TCHAR **argv; |
| 59 | 59 | static _TCHAR **envp; |
| 60 | 60 | |
| 61 | static int argret; | |
| 62 | 61 | static int mainret=0; |
| 63 | 62 | static int managedapp; |
| 64 | 63 | static int has_cctor = 0; |
| 65 | static _startupinfo startinfo; | |
| 66 | 64 | extern LPTOP_LEVEL_EXCEPTION_FILTER __mingw_oldexcpt_handler; |
| 67 | 65 | |
| 68 | 66 | extern void _pei386_runtime_relocator (void); |
| ... | ... | @@ -97,6 +95,7 @@ __mingw_invalidParameterHandler (const wchar_t * __UNUSED_PARAM_1(expression), |
| 97 | 95 | static int __cdecl |
| 98 | 96 | pre_c_init (void) |
| 99 | 97 | { |
| 98 | int ret; | |
| 100 | 99 | managedapp = check_managed_app (); |
| 101 | 100 | if (__mingw_app_type) |
| 102 | 101 | __set_app_type(_GUI_APP); |
| ... | ... | @@ -107,10 +106,12 @@ pre_c_init (void) |
| 107 | 106 | * __p__commode() = _commode; |
| 108 | 107 | |
| 109 | 108 | #ifdef _UNICODE |
| 110 | _wsetargv(); | |
| 109 | ret = _wsetargv(); | |
| 111 | 110 | #else |
| 112 | _setargv(); | |
| 111 | ret = _setargv(); | |
| 113 | 112 | #endif |
| 113 | if (ret < 0) | |
| 114 | _amsg_exit(8); /* _RT_SPACEARG */ | |
| 114 | 115 | if (_MINGW_INSTALL_DEBUG_MATHERR == 1) |
| 115 | 116 | { |
| 116 | 117 | __setusermatherr (_matherr); |
| ... | ... | @@ -125,6 +126,9 @@ pre_c_init (void) |
| 125 | 126 | static void __cdecl |
| 126 | 127 | pre_cpp_init (void) |
| 127 | 128 | { |
| 129 | _startupinfo startinfo; | |
| 130 | int argret; | |
| 131 | ||
| 128 | 132 | startinfo.newmode = _newmode; |
| 129 | 133 | |
| 130 | 134 | #ifdef _UNICODE |
| ... | ... | @@ -132,6 +136,8 @@ pre_cpp_init (void) |
| 132 | 136 | #else |
| 133 | 137 | argret = __getmainargs(&argc,&argv,&envp,_dowildcard,&startinfo); |
| 134 | 138 | #endif |
| 139 | if (argret < 0) | |
| 140 | _amsg_exit(8); /* _RT_SPACEARG */ | |
| 135 | 141 | } |
| 136 | 142 | |
| 137 | 143 | static int __tmainCRTStartup (void); |
| ... | ... | @@ -197,7 +203,7 @@ int mainCRTStartup (void) |
| 197 | 203 | static |
| 198 | 204 | #if defined(__i386__) || defined(_X86_) |
| 199 | 205 | /* 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 | 207 | __attribute__((force_align_arg_pointer)) |
| 202 | 208 | #endif |
| 203 | 209 | __declspec(noinline) int |
| ... | ... | @@ -223,7 +229,8 @@ __tmainCRTStartup (void) |
| 223 | 229 | else if (__native_startup_state == __uninitialized) |
| 224 | 230 | { |
| 225 | 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 | 235 | else |
| 229 | 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 | ||
| 4 | PVOID 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 | 32 | _PVFV funcs[FUNCS_PER_NODE]; |
| 33 | 33 | } TlsDtorNode; |
| 34 | 34 | |
| 35 | __attribute__((used)) | |
| 35 | 36 | ULONG _tls_index = 0; |
| 36 | 37 | |
| 37 | 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 | 231 | ADD_UNDERSCORE(yn) |
| 232 | 232 | |
| 233 | 233 | ; This is list of symbol aliases for C95 functions |
| 234 | #ifdef WITH_GET_PUT_WCHAR_ALIASES | |
| 235 | getwc == fgetwc | |
| 236 | getwchar == _fgetwchar | |
| 237 | putwc == fputwc | |
| 238 | putwchar == _fputwchar | |
| 239 | #endif | |
| 234 | 240 | #ifdef USE_WCSTOK_S_FOR_WCSTOK |
| 235 | 241 | wcstok == wcstok_s |
| 236 | 242 | #endif |
| ... | ... | @@ -531,24 +537,22 @@ __ms_printf == printf |
| 531 | 537 | __ms_scanf == scanf |
| 532 | 538 | __ms_sprintf == sprintf |
| 533 | 539 | __ms_sscanf == sscanf |
| 534 | #ifdef PRE_C95_SWPRINTF | |
| 535 | __ms_swprintf == swprintf | |
| 536 | #else | |
| 537 | __ms_swprintf == _swprintf | |
| 538 | #endif | |
| 539 | 540 | __ms_swscanf == swscanf |
| 540 | 541 | __ms_vfprintf == vfprintf |
| 541 | 542 | __ms_vfwprintf == vfwprintf |
| 542 | 543 | __ms_vprintf == vprintf |
| 543 | 544 | __ms_vsprintf == vsprintf |
| 544 | #ifdef PRE_C95_SWPRINTF | |
| 545 | __ms_vswprintf == vswprintf | |
| 546 | #else | |
| 547 | __ms_vswprintf == _vswprintf | |
| 548 | #endif | |
| 549 | 545 | __ms_vwprintf == vwprintf |
| 550 | 546 | __ms_wprintf == wprintf |
| 551 | 547 | __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 | 556 | #endif |
| 553 | 557 | |
| 554 | 558 | ; 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 | #include <winbase.h> | |
| 2 | ||
| 3 | 1 | #ifndef __LIBMSVCRT_OS__ |
| 4 | 2 | #error "This file should only be used in libmsvcrt-os.a" |
| 5 | 3 | #endif |
| 6 | 4 | |
| 7 | static inline HANDLE __mingw_get_msvcrt_handle(void) | |
| 5 | #ifndef MSVCRT_H | |
| 6 | #define MSVCRT_H | |
| 7 | ||
| 8 | #include <winbase.h> | |
| 9 | ||
| 10 | static 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 | ||
| 4 | PVOID 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 | 25 | AddVectoredExceptionHandler |
| 26 | 26 | AdjustCalendarDate |
| 27 | 27 | AllocConsole |
| 28 | AllocConsoleWithOptions | |
| 28 | 29 | AllocateUserPhysicalPages |
| 29 | 30 | AllocateUserPhysicalPagesNuma |
| 30 | 31 | AppPolicyGetClrCompat |
| ... | ... | @@ -447,6 +448,7 @@ FindVolumeMountPointClose |
| 447 | 448 | FlsAlloc |
| 448 | 449 | FlsFree |
| 449 | 450 | FlsGetValue |
| 451 | FlsGetValue2 | |
| 450 | 452 | FlsSetValue |
| 451 | 453 | FlushConsoleInputBuffer |
| 452 | 454 | FlushFileBuffers |
| ... | ... | @@ -626,6 +628,7 @@ GetFileAttributesW |
| 626 | 628 | GetFileBandwidthReservation |
| 627 | 629 | GetFileInformationByHandle |
| 628 | 630 | GetFileInformationByHandleEx |
| 631 | GetFileInformationByName | |
| 629 | 632 | GetFileMUIInfo |
| 630 | 633 | GetFileMUIPath |
| 631 | 634 | GetFileSize |
| ... | ... | @@ -1282,6 +1285,7 @@ ReleaseActCtxWorker |
| 1282 | 1285 | ReleaseMutex |
| 1283 | 1286 | ReleaseMutexWhenCallbackReturns |
| 1284 | 1287 | ReleasePackageVirtualizationContext |
| 1288 | ReleasePseudoConsole | |
| 1285 | 1289 | ReleaseSRWLockExclusive |
| 1286 | 1290 | ReleaseSRWLockShared |
| 1287 | 1291 | ReleaseSemaphore |
| ... | ... | @@ -1543,6 +1547,7 @@ Thread32Next |
| 1543 | 1547 | TlsAlloc |
| 1544 | 1548 | TlsFree |
| 1545 | 1549 | TlsGetValue |
| 1550 | TlsGetValue2 | |
| 1546 | 1551 | TlsSetValue |
| 1547 | 1552 | Toolhelp32ReadProcessMemory |
| 1548 | 1553 | TransactNamedPipe |
lib/libc/mingw/lib-common/vcruntime140-common.def.in created+89| ... | ... | @@ -0,0 +1,89 @@ |
| 1 | _CreateFrameInfo | |
| 2 | F_I386(_CxxThrowException@8) | |
| 3 | F_NON_I386(_CxxThrowException) | |
| 4 | F_I386(_EH_prolog) | |
| 5 | _FindAndUnlinkFrame | |
| 6 | _IsExceptionObjectToBeDestroyed | |
| 7 | F_I386(_NLG_Dispatch2@4) | |
| 8 | F_I386(_NLG_Return@12) | |
| 9 | F_I386(_NLG_Return2) | |
| 10 | _SetWinRTOutOfMemoryExceptionCallback | |
| 11 | __AdjustPointer | |
| 12 | __BuildCatchObject | |
| 13 | __BuildCatchObjectHelper | |
| 14 | F_NON_I386(__C_specific_handler) | |
| 15 | F_NON_I386(__C_specific_handler_noexcept) | |
| 16 | __CxxDetectRethrow | |
| 17 | __CxxExceptionFilter | |
| 18 | __CxxFrameHandler | |
| 19 | __CxxFrameHandler2 | |
| 20 | __CxxFrameHandler3 | |
| 21 | F_I386(__CxxLongjmpUnwind@4) | |
| 22 | __CxxQueryExceptionSize | |
| 23 | __CxxRegisterExceptionObject | |
| 24 | __CxxUnregisterExceptionObject | |
| 25 | __DestructExceptionObject | |
| 26 | __FrameUnwindFilter | |
| 27 | __GetPlatformExceptionInfo | |
| 28 | F_NON_I386(__NLG_Dispatch2) | |
| 29 | F_NON_I386(__NLG_Return2) | |
| 30 | __RTCastToVoid | |
| 31 | __RTDynamicCast | |
| 32 | __RTtypeid | |
| 33 | __TypeMatch | |
| 34 | __current_exception | |
| 35 | __current_exception_context | |
| 36 | F_NON_ARM64(__intrinsic_setjmp) | |
| 37 | F_NON_I386(__intrinsic_setjmpex) | |
| 38 | F_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 | |
| 58 | F_I386(_chkesp) | |
| 59 | F_I386(_except_handler2) | |
| 60 | F_I386(_except_handler3) | |
| 61 | F_I386(_except_handler4_common) | |
| 62 | _get_purecall_handler | |
| 63 | _get_unexpected | |
| 64 | F_I386(_global_unwind2) | |
| 65 | _is_exception_typeof | |
| 66 | F64(_local_unwind) | |
| 67 | F_I386(_local_unwind2) | |
| 68 | F_I386(_local_unwind4) | |
| 69 | F_I386(_longjmpex) | |
| 70 | _purecall | |
| 71 | F_I386(_seh_longjmp_unwind4@4) | |
| 72 | F_I386(_seh_longjmp_unwind@4) | |
| 73 | _set_purecall_handler | |
| 74 | _set_se_translator | |
| 75 | F_I386(_setjmp3) | |
| 76 | longjmp | |
| 77 | memchr | |
| 78 | memcmp | |
| 79 | memcpy | |
| 80 | memmove | |
| 81 | memset | |
| 82 | set_unexpected | |
| 83 | strchr | |
| 84 | strrchr | |
| 85 | strstr | |
| 86 | unexpected | |
| 87 | wcschr | |
| 88 | wcsrchr | |
| 89 | wcsstr |
lib/libc/mingw/lib-common/vcruntime140.def.in+1-90| ... | ... | @@ -2,93 +2,4 @@ LIBRARY "VCRUNTIME140.dll" |
| 2 | 2 | EXPORTS |
| 3 | 3 | |
| 4 | 4 | #include "func.def.in" |
| 5 | ||
| 6 | _CreateFrameInfo | |
| 7 | F_I386(_CxxThrowException@8) | |
| 8 | F_NON_I386(_CxxThrowException) | |
| 9 | F_I386(_EH_prolog) | |
| 10 | _FindAndUnlinkFrame | |
| 11 | _IsExceptionObjectToBeDestroyed | |
| 12 | F_I386(_NLG_Dispatch2@4) | |
| 13 | F_I386(_NLG_Return@12) | |
| 14 | F_I386(_NLG_Return2) | |
| 15 | _SetWinRTOutOfMemoryExceptionCallback | |
| 16 | __AdjustPointer | |
| 17 | __BuildCatchObject | |
| 18 | __BuildCatchObjectHelper | |
| 19 | F_NON_I386(__C_specific_handler) | |
| 20 | F_NON_I386(__C_specific_handler_noexcept) | |
| 21 | __CxxDetectRethrow | |
| 22 | __CxxExceptionFilter | |
| 23 | __CxxFrameHandler | |
| 24 | __CxxFrameHandler2 | |
| 25 | __CxxFrameHandler3 | |
| 26 | F_I386(__CxxLongjmpUnwind@4) | |
| 27 | __CxxQueryExceptionSize | |
| 28 | __CxxRegisterExceptionObject | |
| 29 | __CxxUnregisterExceptionObject | |
| 30 | __DestructExceptionObject | |
| 31 | __FrameUnwindFilter | |
| 32 | __GetPlatformExceptionInfo | |
| 33 | F_NON_I386(__NLG_Dispatch2) | |
| 34 | F_NON_I386(__NLG_Return2) | |
| 35 | __RTCastToVoid | |
| 36 | __RTDynamicCast | |
| 37 | __RTtypeid | |
| 38 | __TypeMatch | |
| 39 | __current_exception | |
| 40 | __current_exception_context | |
| 41 | F_NON_ARM64(__intrinsic_setjmp) | |
| 42 | F_NON_I386(__intrinsic_setjmpex) | |
| 43 | F_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 | |
| 63 | F_I386(_chkesp) | |
| 64 | F_I386(_except_handler2) | |
| 65 | F_I386(_except_handler3) | |
| 66 | F_I386(_except_handler4_common) | |
| 67 | _get_purecall_handler | |
| 68 | _get_unexpected | |
| 69 | F_I386(_global_unwind2) | |
| 70 | _is_exception_typeof | |
| 71 | F64(_local_unwind) | |
| 72 | F_I386(_local_unwind2) | |
| 73 | F_I386(_local_unwind4) | |
| 74 | F_I386(_longjmpex) | |
| 75 | _purecall | |
| 76 | F_I386(_seh_longjmp_unwind4@4) | |
| 77 | F_I386(_seh_longjmp_unwind@4) | |
| 78 | _set_purecall_handler | |
| 79 | _set_se_translator | |
| 80 | F_I386(_setjmp3) | |
| 81 | longjmp | |
| 82 | memchr | |
| 83 | memcmp | |
| 84 | memcpy | |
| 85 | memmove | |
| 86 | memset | |
| 87 | set_unexpected | |
| 88 | strchr | |
| 89 | strrchr | |
| 90 | strstr | |
| 91 | unexpected | |
| 92 | wcschr | |
| 93 | wcsrchr | |
| 94 | wcsstr | |
| 5 | #include "vcruntime140-common.def.in" |
lib/libc/mingw/lib-common/vcruntime140_app.def.in+2-92| ... | ... | @@ -1,95 +1,5 @@ |
| 1 | LIBRARY vcruntime140_app | |
| 2 | ||
| 1 | LIBRARY "VCRUNTIME140_APP.dll" | |
| 3 | 2 | EXPORTS |
| 4 | 3 | |
| 5 | 4 | #include "func.def.in" |
| 6 | ||
| 7 | _CreateFrameInfo | |
| 8 | F_I386(_CxxThrowException@8) | |
| 9 | F_NON_I386(_CxxThrowException) | |
| 10 | F_I386(_EH_prolog) | |
| 11 | _FindAndUnlinkFrame | |
| 12 | _IsExceptionObjectToBeDestroyed | |
| 13 | F_I386(_NLG_Dispatch2) | |
| 14 | F_I386(_NLG_Return) | |
| 15 | F_I386(_NLG_Return2) | |
| 16 | _SetWinRTOutOfMemoryExceptionCallback | |
| 17 | __AdjustPointer | |
| 18 | __BuildCatchObject | |
| 19 | __BuildCatchObjectHelper | |
| 20 | F_NON_I386(__C_specific_handler) | |
| 21 | F_NON_I386(__C_specific_handler_noexcept) | |
| 22 | __CxxDetectRethrow | |
| 23 | __CxxExceptionFilter | |
| 24 | __CxxFrameHandler | |
| 25 | __CxxFrameHandler2 | |
| 26 | __CxxFrameHandler3 | |
| 27 | F_I386(__CxxLongjmpUnwind@4) | |
| 28 | __CxxQueryExceptionSize | |
| 29 | __CxxRegisterExceptionObject | |
| 30 | __CxxUnregisterExceptionObject | |
| 31 | __DestructExceptionObject | |
| 32 | __FrameUnwindFilter | |
| 33 | __GetPlatformExceptionInfo | |
| 34 | F_NON_I386(__NLG_Dispatch2) | |
| 35 | F_NON_I386(__NLG_Return2) | |
| 36 | __RTCastToVoid | |
| 37 | __RTDynamicCast | |
| 38 | __RTtypeid | |
| 39 | __TypeMatch | |
| 40 | __current_exception | |
| 41 | __current_exception_context | |
| 42 | F_NON_ARM64(__intrinsic_setjmp) | |
| 43 | F_NON_I386(__intrinsic_setjmpex) | |
| 44 | F_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 | |
| 64 | F_I386(_chkesp) | |
| 65 | F_I386(_except_handler2) | |
| 66 | F_I386(_except_handler3) | |
| 67 | F_I386(_except_handler4_common) | |
| 68 | _get_purecall_handler | |
| 69 | _get_unexpected | |
| 70 | F_I386(_global_unwind2) | |
| 71 | _is_exception_typeof | |
| 72 | F_I386(_local_unwind2) | |
| 73 | F_I386(_local_unwind4) | |
| 74 | F_I386(_longjmpex) | |
| 75 | F64(_local_unwind) | |
| 76 | _purecall | |
| 77 | F_I386(_seh_longjmp_unwind4@4) | |
| 78 | F_I386(_seh_longjmp_unwind@4) | |
| 79 | _set_purecall_handler | |
| 80 | _set_se_translator | |
| 81 | F_I386(_setjmp3) | |
| 82 | longjmp | |
| 83 | memchr | |
| 84 | memcmp | |
| 85 | memcpy | |
| 86 | memmove | |
| 87 | memset | |
| 88 | set_unexpected | |
| 89 | strchr | |
| 90 | strrchr | |
| 91 | strstr | |
| 92 | unexpected | |
| 93 | wcschr | |
| 94 | wcsrchr | |
| 95 | wcsstr | |
| 5 | #include "vcruntime140-common.def.in" |
lib/libc/mingw/lib-common/vcruntime140d.def.in+1-90| ... | ... | @@ -2,93 +2,4 @@ LIBRARY "VCRUNTIME140D.dll" |
| 2 | 2 | EXPORTS |
| 3 | 3 | |
| 4 | 4 | #include "func.def.in" |
| 5 | ||
| 6 | _CreateFrameInfo | |
| 7 | F_I386(_CxxThrowException@8) | |
| 8 | F_NON_I386(_CxxThrowException) | |
| 9 | F_I386(_EH_prolog) | |
| 10 | _FindAndUnlinkFrame | |
| 11 | _IsExceptionObjectToBeDestroyed | |
| 12 | F_I386(_NLG_Dispatch2@4) | |
| 13 | F_I386(_NLG_Return@12) | |
| 14 | F_I386(_NLG_Return2) | |
| 15 | _SetWinRTOutOfMemoryExceptionCallback | |
| 16 | __AdjustPointer | |
| 17 | __BuildCatchObject | |
| 18 | __BuildCatchObjectHelper | |
| 19 | F_NON_I386(__C_specific_handler) | |
| 20 | F_NON_I386(__C_specific_handler_noexcept) | |
| 21 | __CxxDetectRethrow | |
| 22 | __CxxExceptionFilter | |
| 23 | __CxxFrameHandler | |
| 24 | __CxxFrameHandler2 | |
| 25 | __CxxFrameHandler3 | |
| 26 | F_I386(__CxxLongjmpUnwind@4) | |
| 27 | __CxxQueryExceptionSize | |
| 28 | __CxxRegisterExceptionObject | |
| 29 | __CxxUnregisterExceptionObject | |
| 30 | __DestructExceptionObject | |
| 31 | __FrameUnwindFilter | |
| 32 | __GetPlatformExceptionInfo | |
| 33 | F_NON_I386(__NLG_Dispatch2) | |
| 34 | F_NON_I386(__NLG_Return2) | |
| 35 | __RTCastToVoid | |
| 36 | __RTDynamicCast | |
| 37 | __RTtypeid | |
| 38 | __TypeMatch | |
| 39 | __current_exception | |
| 40 | __current_exception_context | |
| 41 | F_NON_ARM64(__intrinsic_setjmp) | |
| 42 | F_NON_I386(__intrinsic_setjmpex) | |
| 43 | F_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 | |
| 63 | F_I386(_chkesp) | |
| 64 | F_I386(_except_handler2) | |
| 65 | F_I386(_except_handler3) | |
| 66 | F_I386(_except_handler4_common) | |
| 67 | _get_purecall_handler | |
| 68 | _get_unexpected | |
| 69 | F_I386(_global_unwind2) | |
| 70 | _is_exception_typeof | |
| 71 | F64(_local_unwind) | |
| 72 | F_I386(_local_unwind2) | |
| 73 | F_I386(_local_unwind4) | |
| 74 | F_I386(_longjmpex) | |
| 75 | _purecall | |
| 76 | F_I386(_seh_longjmp_unwind4@4) | |
| 77 | F_I386(_seh_longjmp_unwind@4) | |
| 78 | _set_purecall_handler | |
| 79 | _set_se_translator | |
| 80 | F_I386(_setjmp3) | |
| 81 | longjmp | |
| 82 | memchr | |
| 83 | memcmp | |
| 84 | memcpy | |
| 85 | memmove | |
| 86 | memset | |
| 87 | set_unexpected | |
| 88 | strchr | |
| 89 | strrchr | |
| 90 | strstr | |
| 91 | unexpected | |
| 92 | wcschr | |
| 93 | wcsrchr | |
| 94 | wcsstr | |
| 5 | #include "vcruntime140-common.def.in" |
lib/libc/mingw/lib32/dxva2.def+1| ... | ... | @@ -8,6 +8,7 @@ EXPORTS |
| 8 | 8 | CapabilitiesRequestAndCapabilitiesReply@12 |
| 9 | 9 | DXVA2CreateDirect3DDeviceManager9@8 |
| 10 | 10 | DXVA2CreateVideoService@12 |
| 11 | DXVAHD_CreateDevice@20 | |
| 11 | 12 | DegaussMonitor@4 |
| 12 | 13 | DestroyPhysicalMonitor@4 |
| 13 | 14 | DestroyPhysicalMonitors@8 |
lib/libc/mingw/lib32/kernel32.def+6-1| ... | ... | @@ -30,6 +30,7 @@ AddVectoredContinueHandler@8 |
| 30 | 30 | AddVectoredExceptionHandler@8 |
| 31 | 31 | AdjustCalendarDate@12 |
| 32 | 32 | AllocConsole@0 |
| 33 | AllocConsoleWithOptions@8 | |
| 33 | 34 | AllocateUserPhysicalPages@12 |
| 34 | 35 | AllocateUserPhysicalPagesNuma@16 |
| 35 | 36 | AppPolicyGetClrCompat@8 |
| ... | ... | @@ -440,6 +441,7 @@ FindVolumeClose@4 |
| 440 | 441 | FindVolumeMountPointClose@4 |
| 441 | 442 | FlsAlloc@4 |
| 442 | 443 | FlsFree@4 |
| 444 | FlsGetValue2@4 | |
| 443 | 445 | FlsGetValue@4 |
| 444 | 446 | FlsSetValue@8 |
| 445 | 447 | FlushConsoleInputBuffer@4 |
| ... | ... | @@ -616,6 +618,7 @@ GetFileAttributesW@4 |
| 616 | 618 | GetFileBandwidthReservation@24 |
| 617 | 619 | GetFileInformationByHandle@8 |
| 618 | 620 | GetFileInformationByHandleEx@16 |
| 621 | GetFileInformationByName@16 | |
| 619 | 622 | GetFileMUIInfo@16 |
| 620 | 623 | GetFileMUIPath@28 |
| 621 | 624 | GetFileSize@8 |
| ... | ... | @@ -1270,6 +1273,7 @@ ReleaseActCtxWorker@4 |
| 1270 | 1273 | ReleaseMutex@4 |
| 1271 | 1274 | ReleaseMutexWhenCallbackReturns@8 |
| 1272 | 1275 | ReleasePackageVirtualizationContext@4 |
| 1276 | ReleasePseudoConsole@4 | |
| 1273 | 1277 | ReleaseSRWLockExclusive@4 |
| 1274 | 1278 | ReleaseSRWLockShared@4 |
| 1275 | 1279 | ReleaseSemaphore@12 |
| ... | ... | @@ -1518,6 +1522,7 @@ Thread32First@8 |
| 1518 | 1522 | Thread32Next@8 |
| 1519 | 1523 | TlsAlloc@0 |
| 1520 | 1524 | TlsFree@4 |
| 1525 | TlsGetValue2@4 | |
| 1521 | 1526 | TlsGetValue@4 |
| 1522 | 1527 | TlsSetValue@8 |
| 1523 | 1528 | Toolhelp32ReadProcessMemory@20 |
| ... | ... | @@ -1605,7 +1610,7 @@ WerRegisterRuntimeExceptionModuleWorker@8 |
| 1605 | 1610 | WerSetFlags@4 |
| 1606 | 1611 | WerSetFlagsWorker@4 |
| 1607 | 1612 | WerUnregisterAdditionalProcess@4 |
| 1608 | WerUnregisterAppLocalDump | |
| 1613 | WerUnregisterAppLocalDump@0 | |
| 1609 | 1614 | WerUnregisterCustomMetadata@4 |
| 1610 | 1615 | WerUnregisterExcludedMemoryBlock@4 |
| 1611 | 1616 | WerUnregisterFile@4 |
lib/libc/mingw/lib64/kernel32.def+5| ... | ... | @@ -24,6 +24,7 @@ AddVectoredContinueHandler |
| 24 | 24 | AddVectoredExceptionHandler |
| 25 | 25 | AdjustCalendarDate |
| 26 | 26 | AllocConsole |
| 27 | AllocConsoleWithOptions | |
| 27 | 28 | AllocateUserPhysicalPages |
| 28 | 29 | AllocateUserPhysicalPagesNuma |
| 29 | 30 | AppPolicyGetClrCompat |
| ... | ... | @@ -446,6 +447,7 @@ FindVolumeMountPointClose |
| 446 | 447 | FlsAlloc |
| 447 | 448 | FlsFree |
| 448 | 449 | FlsGetValue |
| 450 | FlsGetValue2 | |
| 449 | 451 | FlsSetValue |
| 450 | 452 | FlushConsoleInputBuffer |
| 451 | 453 | FlushFileBuffers |
| ... | ... | @@ -625,6 +627,7 @@ GetFileAttributesW |
| 625 | 627 | GetFileBandwidthReservation |
| 626 | 628 | GetFileInformationByHandle |
| 627 | 629 | GetFileInformationByHandleEx |
| 630 | GetFileInformationByName | |
| 628 | 631 | GetFileMUIInfo |
| 629 | 632 | GetFileMUIPath |
| 630 | 633 | GetFileSize |
| ... | ... | @@ -1281,6 +1284,7 @@ ReleaseActCtxWorker |
| 1281 | 1284 | ReleaseMutex |
| 1282 | 1285 | ReleaseMutexWhenCallbackReturns |
| 1283 | 1286 | ReleasePackageVirtualizationContext |
| 1287 | ReleasePseudoConsole | |
| 1284 | 1288 | ReleaseSRWLockExclusive |
| 1285 | 1289 | ReleaseSRWLockShared |
| 1286 | 1290 | ReleaseSemaphore |
| ... | ... | @@ -1542,6 +1546,7 @@ Thread32Next |
| 1542 | 1546 | TlsAlloc |
| 1543 | 1547 | TlsFree |
| 1544 | 1548 | TlsGetValue |
| 1549 | TlsGetValue2 | |
| 1545 | 1550 | TlsSetValue |
| 1546 | 1551 | Toolhelp32ReadProcessMemory |
| 1547 | 1552 | TransactNamedPipe |
lib/libc/mingw/libsrc/wia-uuid.c+1-101| ... | ... | @@ -1,106 +1,6 @@ |
| 1 | 1 | /* unknwn-uuid.c */ |
| 2 | 2 | /* Generate GUIDs for WIA interfaces */ |
| 3 | 3 | |
| 4 | /* All IIDs defined in this file were extracted from | |
| 5 | * HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\ */ | |
| 6 | ||
| 7 | 4 | #define INITGUID |
| 8 | 5 | #include <basetyps.h> |
| 9 | ||
| 10 | // Image types | |
| 11 | DEFINE_GUID(WiaImgFmt_UNDEFINED,0xb96b3ca9,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); | |
| 12 | DEFINE_GUID(WiaImgFmt_RAWRGB,0xbca48b55,0xf272,0x4371,0xb0,0xf1,0x4a,0x15,0x0d,0x05,0x7b,0xb4); | |
| 13 | DEFINE_GUID(WiaImgFmt_MEMORYBMP,0xb96b3caa,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); | |
| 14 | DEFINE_GUID(WiaImgFmt_BMP,0xb96b3cab,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); | |
| 15 | DEFINE_GUID(WiaImgFmt_EMF,0xb96b3cac,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); | |
| 16 | DEFINE_GUID(WiaImgFmt_WMF,0xb96b3cad,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); | |
| 17 | DEFINE_GUID(WiaImgFmt_JPEG,0xb96b3cae,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); | |
| 18 | DEFINE_GUID(WiaImgFmt_PNG,0xb96b3caf,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); | |
| 19 | DEFINE_GUID(WiaImgFmt_GIF,0xb96b3cb0,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); | |
| 20 | DEFINE_GUID(WiaImgFmt_TIFF,0xb96b3cb1,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); | |
| 21 | DEFINE_GUID(WiaImgFmt_EXIF,0xb96b3cb2,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); | |
| 22 | DEFINE_GUID(WiaImgFmt_PHOTOCD,0xb96b3cb3,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); | |
| 23 | DEFINE_GUID(WiaImgFmt_FLASHPIX,0xb96b3cb4,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); | |
| 24 | DEFINE_GUID(WiaImgFmt_ICO,0xb96b3cb5,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); | |
| 25 | DEFINE_GUID(WiaImgFmt_CIFF,0x9821a8ab,0x3a7e,0x4215,0x94,0xe0,0xd2,0x7a,0x46,0x0c,0x03,0xb2); | |
| 26 | DEFINE_GUID(WiaImgFmt_PICT,0xa6bc85d8,0x6b3e,0x40ee,0xa9,0x5c,0x25,0xd4,0x82,0xe4,0x1a,0xdc); | |
| 27 | DEFINE_GUID(WiaImgFmt_JPEG2K,0x344ee2b2,0x39db,0x4dde,0x81,0x73,0xc4,0xb7,0x5f,0x8f,0x1e,0x49); | |
| 28 | DEFINE_GUID(WiaImgFmt_JPEG2KX,0x43e14614,0xc80a,0x4850,0xba,0xf3,0x4b,0x15,0x2d,0xc8,0xda,0x27); | |
| 29 | ||
| 30 | // Document and other types | |
| 31 | DEFINE_GUID(WiaImgFmt_RTF,0x573dd6a3,0x4834,0x432d,0xa9,0xb5,0xe1,0x98,0xdd,0x9e,0x89,0x0d); | |
| 32 | DEFINE_GUID(WiaImgFmt_XML,0xb9171457,0xdac8,0x4884,0xb3,0x93,0x15,0xb4,0x71,0xd5,0xf0,0x7e); | |
| 33 | DEFINE_GUID(WiaImgFmt_HTML,0xc99a4e62,0x99de,0x4a94,0xac,0xca,0x71,0x95,0x6a,0xc2,0x97,0x7d); | |
| 34 | DEFINE_GUID(WiaImgFmt_TXT,0xfafd4d82,0x723f,0x421f,0x93,0x18,0x30,0x50,0x1a,0xc4,0x4b,0x59); | |
| 35 | DEFINE_GUID(WiaImgFmt_MPG,0xecd757e4,0xd2ec,0x4f57,0x95,0x5d,0xbc,0xf8,0xa9,0x7c,0x4e,0x52); | |
| 36 | DEFINE_GUID(WiaImgFmt_AVI,0x32f8ca14,0x087c,0x4908,0xb7,0xc4,0x67,0x57,0xfe,0x7e,0x90,0xab); | |
| 37 | DEFINE_GUID(WiaImgFmt_ASF,0x8d948ee9,0xd0aa,0x4a12,0x9d,0x9a,0x9c,0xc5,0xde,0x36,0x19,0x9b); | |
| 38 | DEFINE_GUID(WiaImgFmt_SCRIPT,0xfe7d6c53,0x2dac,0x446a,0xb0,0xbd,0xd7,0x3e,0x21,0xe9,0x24,0xc9); | |
| 39 | DEFINE_GUID(WiaImgFmt_EXEC,0x485da097,0x141e,0x4aa5,0xbb,0x3b,0xa5,0x61,0x8d,0x95,0xd0,0x2b); | |
| 40 | DEFINE_GUID(WiaImgFmt_UNICODE16,0x1b7639b6,0x6357,0x47d1,0x9a,0x07,0x12,0x45,0x2d,0xc0,0x73,0xe9); | |
| 41 | DEFINE_GUID(WiaImgFmt_DPOF,0x369eeeab,0xa0e8,0x45ca,0x86,0xa6,0xa8,0x3c,0xe5,0x69,0x7e,0x28); | |
| 42 | ||
| 43 | // Audio types | |
| 44 | DEFINE_GUID(WiaAudFmt_WAV,0xf818e146,0x07af,0x40ff,0xae,0x55,0xbe,0x8f,0x2c,0x06,0x5d,0xbe); | |
| 45 | DEFINE_GUID(WiaAudFmt_MP3,0x0fbc71fb,0x43bf,0x49f2,0x91,0x90,0xe6,0xfe,0xcf,0xf3,0x7e,0x54); | |
| 46 | DEFINE_GUID(WiaAudFmt_AIFF,0x66e2bf4f,0xb6fc,0x443f,0x94,0xc8,0x2f,0x33,0xc8,0xa6,0x5a,0xaf); | |
| 47 | DEFINE_GUID(WiaAudFmt_WMA,0xd61d6413,0x8bc2,0x438f,0x93,0xad,0x21,0xbd,0x48,0x4d,0xb6,0xa1); | |
| 48 | ||
| 49 | // Event GUIDs | |
| 50 | DEFINE_GUID(WIA_EVENT_DEVICE_DISCONNECTED,0x143e4e83,0x6497,0x11d2,0xa2,0x31,0x00,0xc0,0x4f,0xa3,0x18,0x09); | |
| 51 | DEFINE_GUID(WIA_EVENT_DEVICE_CONNECTED,0xa28bbade,0x64b6,0x11d2,0xa2,0x31,0x00,0xc0,0x4f,0xa3,0x18,0x09); | |
| 52 | DEFINE_GUID(WIA_EVENT_ITEM_DELETED,0x1d22a559,0xe14f,0x11d2,0xb3,0x26,0x00,0xc0,0x4f,0x68,0xce,0x61); | |
| 53 | DEFINE_GUID(WIA_EVENT_ITEM_CREATED,0x4c8f4ef5,0xe14f,0x11d2,0xb3,0x26,0x00,0xc0,0x4f,0x68,0xce,0x61); | |
| 54 | DEFINE_GUID(WIA_EVENT_TREE_UPDATED,0xc9859b91,0x4ab2,0x4cd6,0xa1,0xfc,0x58,0x2e,0xec,0x55,0xe5,0x85); | |
| 55 | DEFINE_GUID(WIA_EVENT_VOLUME_INSERT,0x9638bbfd,0xd1bd,0x11d2,0xb3,0x1f,0x00,0xc0,0x4f,0x68,0xce,0x61); | |
| 56 | DEFINE_GUID(WIA_EVENT_SCAN_IMAGE,0xa6c5a715,0x8c6e,0x11d2,0x97,0x7a,0x00,0x00,0xf8,0x7a,0x92,0x6f); | |
| 57 | DEFINE_GUID(WIA_EVENT_SCAN_PRINT_IMAGE,0xb441f425,0x8c6e,0x11d2,0x97,0x7a,0x00,0x00,0xf8,0x7a,0x92,0x6f); | |
| 58 | DEFINE_GUID(WIA_EVENT_SCAN_FAX_IMAGE,0xc00eb793,0x8c6e,0x11d2,0x97,0x7a,0x00,0x00,0xf8,0x7a,0x92,0x6f); | |
| 59 | DEFINE_GUID(WIA_EVENT_SCAN_OCR_IMAGE,0x9d095b89,0x37d6,0x4877,0xaf,0xed,0x62,0xa2,0x97,0xdc,0x6d,0xbe); | |
| 60 | DEFINE_GUID(WIA_EVENT_SCAN_EMAIL_IMAGE,0xc686dcee,0x54f2,0x419e,0x9a,0x27,0x2f,0xc7,0xf2,0xe9,0x8f,0x9e); | |
| 61 | DEFINE_GUID(WIA_EVENT_SCAN_FILM_IMAGE,0x9b2b662c,0x6185,0x438c,0xb6,0x8b,0xe3,0x9e,0xe2,0x5e,0x71,0xcb); | |
| 62 | DEFINE_GUID(WIA_EVENT_SCAN_IMAGE2,0xfc4767c1,0xc8b3,0x48a2,0x9c,0xfa,0x2e,0x90,0xcb,0x3d,0x35,0x90); | |
| 63 | DEFINE_GUID(WIA_EVENT_SCAN_IMAGE3,0x154e27be,0xb617,0x4653,0xac,0xc5,0x0f,0xd7,0xbd,0x4c,0x65,0xce); | |
| 64 | DEFINE_GUID(WIA_EVENT_SCAN_IMAGE4,0xa65b704a,0x7f3c,0x4447,0xa7,0x5d,0x8a,0x26,0xdf,0xca,0x1f,0xdf); | |
| 65 | DEFINE_GUID(WIA_EVENT_STORAGE_CREATED,0x353308b2,0xfe73,0x46c8,0x89,0x5e,0xfa,0x45,0x51,0xcc,0xc8,0x5a); | |
| 66 | DEFINE_GUID(WIA_EVENT_STORAGE_DELETED,0x5e41e75e,0x9390,0x44c5,0x9a,0x51,0xe4,0x70,0x19,0xe3,0x90,0xcf); | |
| 67 | DEFINE_GUID(WIA_EVENT_STI_PROXY,0xd711f81f,0x1f0d,0x422d,0x86,0x41,0x92,0x7d,0x1b,0x93,0xe5,0xe5); | |
| 68 | DEFINE_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 | |
| 71 | DEFINE_GUID(WIA_EVENT_POWER_SUSPEND,0xa0922ff9,0xc3b4,0x411c,0x9e,0x29,0x03,0xa6,0x69,0x93,0xd2,0xbe); | |
| 72 | DEFINE_GUID(WIA_EVENT_POWER_RESUME,0x618f153e,0xf686,0x4350,0x96,0x34,0x41,0x15,0xa3,0x04,0x83,0x0c); | |
| 73 | ||
| 74 | // No action handler and prompt handler | |
| 75 | DEFINE_GUID(WIA_EVENT_HANDLER_NO_ACTION,0xe0372b7d,0xe115,0x4525,0xbc,0x55,0xb6,0x29,0xe6,0x8c,0x74,0x5a); | |
| 76 | DEFINE_GUID(WIA_EVENT_HANDLER_PROMPT,0x5f4baad0,0x4d59,0x4fcd,0xb2,0x13,0x78,0x3c,0xe7,0xa9,0x2f,0x22); | |
| 77 | ||
| 78 | // WIA Commands | |
| 79 | DEFINE_GUID(WIA_CMD_SYNCHRONIZE,0x9b26b7b2,0xacad,0x11d2,0xa0,0x93,0x00,0xc0,0x4f,0x72,0xdc,0x3c); | |
| 80 | DEFINE_GUID(WIA_CMD_TAKE_PICTURE,0xaf933cac,0xacad,0x11d2,0xa0,0x93,0x00,0xc0,0x4f,0x72,0xdc,0x3c); | |
| 81 | DEFINE_GUID(WIA_CMD_DELETE_ALL_ITEMS,0xe208c170,0xacad,0x11d2,0xa0,0x93,0x00,0xc0,0x4f,0x72,0xdc,0x3c); | |
| 82 | DEFINE_GUID(WIA_CMD_CHANGE_DOCUMENT,0x04e725b0,0xacae,0x11d2,0xa0,0x93,0x00,0xc0,0x4f,0x72,0xdc,0x3c); | |
| 83 | DEFINE_GUID(WIA_CMD_UNLOAD_DOCUMENT,0x1f3b3d8e,0xacae,0x11d2,0xa0,0x93,0x00,0xc0,0x4f,0x72,0xdc,0x3c); | |
| 84 | DEFINE_GUID(WIA_CMD_DIAGNOSTIC,0x10ff52f5,0xde04,0x4cf0,0xa5,0xad,0x69,0x1f,0x8d,0xce,0x01,0x41); | |
| 85 | ||
| 86 | DEFINE_GUID(WIA_CMD_DELETE_DEVICE_TREE,0x73815942,0xdbea,0x11d2,0x84,0x16,0x00,0xc0,0x4f,0xa3,0x61,0x45); | |
| 87 | DEFINE_GUID(WIA_CMD_BUILD_DEVICE_TREE,0x9cba5ce0,0xdbea,0x11d2,0x84,0x16,0x00,0xc0,0x4f,0xa3,0x61,0x45); | |
| 88 | ||
| 89 | DEFINE_GUID(IID_IWiaUIExtension,0xDA319113,0x50EE,0x4C80,0xB4,0x60,0x57,0xD0,0x05,0xD4,0x4A,0x2C); | |
| 90 | ||
| 91 | DEFINE_GUID(IID_IWiaDevMgr,0x5eb2502a,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11); | |
| 92 | DEFINE_GUID(IID_IEnumWIA_DEV_INFO,0x5e38b83c,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11); | |
| 93 | DEFINE_GUID(IID_IWiaEventCallback,0xae6287b0,0x0084,0x11d2,0x97,0x3b,0x00,0xa0,0xc9,0x06,0x8f,0x2e); | |
| 94 | DEFINE_GUID(IID_IWiaDataCallback,0xa558a866,0xa5b0,0x11d2,0xa0,0x8f,0x00,0xc0,0x4f,0x72,0xdc,0x3c); | |
| 95 | DEFINE_GUID(IID_IWiaDataTransfer,0xa6cef998,0xa5b0,0x11d2,0xa0,0x8f,0x00,0xc0,0x4f,0x72,0xdc,0x3c); | |
| 96 | DEFINE_GUID(IID_IWiaItem,0x4db1ad10,0x3391,0x11d2,0x9a,0x33,0x00,0xc0,0x4f,0xa3,0x61,0x45); | |
| 97 | DEFINE_GUID(IID_IWiaPropertyStorage,0x98B5E8A0,0x29CC,0x491a,0xAA,0xC0,0xE6,0xDB,0x4F,0xDC,0xCE,0xB6); | |
| 98 | DEFINE_GUID(IID_IEnumWiaItem,0x5e8383fc,0x3391,0x11d2,0x9a,0x33,0x00,0xc0,0x4f,0xa3,0x61,0x45); | |
| 99 | DEFINE_GUID(IID_IEnumWIA_DEV_CAPS,0x1fcc4287,0xaca6,0x11d2,0xa0,0x93,0x00,0xc0,0x4f,0x72,0xdc,0x3c); | |
| 100 | DEFINE_GUID(IID_IEnumWIA_FORMAT_INFO,0x81BEFC5B,0x656D,0x44f1,0xB2,0x4C,0xD4,0x1D,0x51,0xB4,0xDC,0x81); | |
| 101 | DEFINE_GUID(IID_IWiaLog,0xA00C10B6,0x82A1,0x452f,0x8B,0x6C,0x86,0x06,0x2A,0xAD,0x68,0x90); | |
| 102 | DEFINE_GUID(IID_IWiaLogEx,0xAF1F22AC,0x7A40,0x4787,0xB4,0x21,0xAE,0xb4,0x7A,0x1F,0xBD,0x0B); | |
| 103 | DEFINE_GUID(IID_IWiaNotifyDevMgr,0x70681EA0,0xE7BF,0x4291,0x9F,0xB1,0x4E,0x88,0x13,0xA3,0xF7,0x8E); | |
| 104 | DEFINE_GUID(IID_IWiaItemExtras,0x6291ef2c,0x36ef,0x4532,0x87,0x6a,0x8e,0x13,0x25,0x93,0x77,0x8d); | |
| 105 | DEFINE_GUID(CLSID_WiaDevMgr,0xa1f4e726,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11); | |
| 106 | DEFINE_GUID(CLSID_WiaLog,0xA1E75357,0x881A,0x419e,0x83,0xE2,0xBB,0x16,0xDB,0x19,0x7C,0x68); | |
| 6 | #include <wia.h> |
lib/libc/mingw/math/x86/cossin.c-23| ... | ... | @@ -5,7 +5,6 @@ |
| 5 | 5 | */ |
| 6 | 6 | |
| 7 | 7 | void sincos (double __x, double *p_sin, double *p_cos); |
| 8 | void sincosl (long double __x, long double *p_sin, long double *p_cos); | |
| 9 | 8 | void sincosf (float __x, float *p_sin, float *p_cos); |
| 10 | 9 | |
| 11 | 10 | void sincos (double __x, double *p_sin, double *p_cos) |
| ... | ... | @@ -51,25 +50,3 @@ void sincosf (float __x, float *p_sin, float *p_cos) |
| 51 | 50 | *p_sin = (float) s; |
| 52 | 51 | *p_cos = (float) c; |
| 53 | 52 | } |
| 54 | ||
| 55 | void 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 | ||
| 7 | void sincosl (long double __x, long double *p_sin, long double *p_cos); | |
| 8 | ||
| 9 | void 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 | ||
| 4 | int __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 | ||
| 4 | int __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 | 25 | 	 || invalid_char) |
| 26 | 26 | return EOF; |
| 27 | 27 | |
| 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 | ||
| 35 | static 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 | ||
| 44 | wctrans_t | |
| 45 | wctrans (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 | ||
| 54 | wint_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(). */ | |
| 41 | static 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]) | |
| 58 | wctype_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 | 72 | |
| 73 | 73 | # define __printf __mingw_wprintf |
| 74 | 74 | # define __fprintf __mingw_fwprintf |
| 75 | # define __sprintf __mingw_swprintf | |
| 75 | #ifdef __BUILD_WIDEAPI_ISO | |
| 76 | # define __snprintf __mingw_swprintf | |
| 77 | #else | |
| 76 | 78 | # define __snprintf __mingw_snwprintf |
| 79 | #endif | |
| 77 | 80 | |
| 78 | 81 | # define __vprintf __mingw_vwprintf |
| 79 | 82 | # define __vfprintf __mingw_vfwprintf |
| 80 | # define __vsprintf __mingw_vswprintf | |
| 83 | #ifdef __BUILD_WIDEAPI_ISO | |
| 84 | # define __vsnprintf __mingw_vswprintf | |
| 85 | #else | |
| 81 | 86 | # define __vsnprintf __mingw_vsnwprintf |
| 87 | #endif | |
| 88 | ||
| 82 | 89 | #else |
| 83 | 90 | # define __pformat __mingw_pformat |
| 84 | 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 | ||
| 77 | static void * | |
| 78 | get_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 | ||
| 88 | static void | |
| 89 | optimize_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 | ||
| 105 | static void | |
| 106 | back_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 | ||
| 122 | static int | |
| 123 | in_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 | ||
| 161 | static int | |
| 162 | match_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 | ||
| 191 | struct gcollect | |
| 192 | { | |
| 193 | size_t count; | |
| 194 | struct gcollect *next; | |
| 195 | char **ptrs[32]; | |
| 196 | }; | |
| 197 | ||
| 198 | static void | |
| 199 | release_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 | ||
| 225 | static int | |
| 226 | cleanup_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 | ||
| 257 | static struct gcollect * | |
| 258 | resize_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 | ||
| 269 | static char * | |
| 270 | resize_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 | ||
| 291 | int | |
| 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. */ | |
| 49 | typedef 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 | ||
| 61 | int __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 | ||
| 85 | static void * | |
| 86 | get_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 | ||
| 97 | static void | |
| 98 | optimize_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 | ||
| 114 | static void | |
| 115 | back_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 | ||
| 131 | static int | |
| 132 | in_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 | ||
| 170 | static int | |
| 171 | match_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 | ||
| 200 | struct gcollect | |
| 201 | { | |
| 202 | size_t count; | |
| 203 | struct gcollect *next; | |
| 204 | char **ptrs[32]; | |
| 205 | }; | |
| 206 | ||
| 207 | static void | |
| 208 | release_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 | ||
| 234 | static int | |
| 235 | cleanup_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 | ||
| 266 | static struct gcollect * | |
| 267 | resize_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 | ||
| 278 | static wchar_t * | |
| 279 | resize_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 | ||
| 300 | int | |
| 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. */ | |
| 49 | typedef 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 | ||
| 61 | int __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 | /* | |
| 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 | 1 | #include <stdarg.h> |
| 50 | 2 | #include <stdio.h> |
| 51 | #include <stdint.h> | |
| 52 | #include <stdlib.h> | |
| 53 | 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. */ | |
| 76 | typedef 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 | ||
| 88 | static void * | |
| 89 | get_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 | ||
| 99 | static void | |
| 100 | optimize_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 | ||
| 116 | static void | |
| 117 | back_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 | ||
| 133 | static int | |
| 134 | in_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 | ||
| 172 | static int | |
| 173 | match_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 | ||
| 202 | struct gcollect | |
| 203 | { | |
| 204 | size_t count; | |
| 205 | struct gcollect *next; | |
| 206 | char **ptrs[32]; | |
| 207 | }; | |
| 208 | ||
| 209 | static void | |
| 210 | release_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 | ||
| 236 | static int | |
| 237 | cleanup_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 | ||
| 268 | static struct gcollect * | |
| 269 | resize_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 | ||
| 280 | static char * | |
| 281 | resize_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 | ||
| 302 | static 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); | |
| 823 | 4 | |
| 824 | 	 if ((flags & IS_SUPPRESSED) == 0) | |
| 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 | } | |
| 5 | #include "mingw_sformat.h" | |
| 1613 | 6 | |
| 1614 | 7 | int |
| 1615 | 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 | 12 | ifp.fp = s; |
| 1620 | 13 | return __mingw_sformat (&ifp, format, argp); |
| 1621 | 14 | } |
| 1622 | ||
| 1623 | int | |
| 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 | ||
| 7 | int | |
| 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 | 34 | register int retval; |
| 35 | 35 | |
| 36 | 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 | 45 | * No buffer; simply compute and return the size required, |
| 39 | 46 | * without actually emitting any data. |
| 40 | 47 | */ |
| 41 | 48 | return __pformat( 0, buf, 0, fmt, argv); |
| 49 | #endif | |
| 50 | } | |
| 42 | 51 | |
| 43 | 52 | /* If we get to here, then we have a buffer... |
| 44 | 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 | 56 | retval = __pformat( 0, buf, --length, fmt, argv ); |
| 48 | 57 | buf[retval < (int) length ? retval : (int)length] = '\0'; |
| 49 | 58 | |
| 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 | 68 | return retval; |
| 51 | 69 | } |
| 52 | 70 |
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 | ||
| 7 | int | |
| 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 | ||
| 7 | int | |
| 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. */ | |
| 84 | typedef 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 | ||
| 96 | static void * | |
| 97 | get_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 | ||
| 108 | static void | |
| 109 | optimize_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 | ||
| 125 | static void | |
| 126 | back_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 | ||
| 142 | static int | |
| 143 | in_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 | ||
| 181 | static int | |
| 182 | match_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 | ||
| 211 | struct gcollect | |
| 212 | { | |
| 213 | size_t count; | |
| 214 | struct gcollect *next; | |
| 215 | char **ptrs[32]; | |
| 216 | }; | |
| 217 | ||
| 218 | static void | |
| 219 | release_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 | ||
| 245 | static int | |
| 246 | cleanup_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 | ||
| 277 | static struct gcollect * | |
| 278 | resize_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 | ||
| 289 | static wchar_t * | |
| 290 | resize_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 | ||
| 311 | static 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 | ||
| 1613 | int | |
| 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 | ||
| 1622 | int | |
| 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 | |
| 189 | 1: ldr r7, [r2], #4 | |
| 190 | subs r3, r3, #1 | |
| 191 | str r7, [r4], #4 | |
| 192 | bne 1b | |
| 193 | ||
| 194 | 2: | |
| 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 | |
| 232 | 1: ldr x13, [x10], #8 | |
| 233 | subs x11, x11, #1 | |
| 234 | str x13, [x9], #8 | |
| 235 | b.ne 1b | |
| 236 | ||
| 237 | 2: | |
| 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 | ||
| 9 | size_t FUNC(const TYPE *format); | |
| 10 | size_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 | |
| 17 | FCT: | |
| 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 | 12 | va_list argptr; |
| 13 | 13 | |
| 14 | 14 | va_start(argptr, format); |
| 15 | retval = _vsnwprintf(buffer, n, format, argptr); | |
| 15 | retval = __ms_vsnwprintf(buffer, n, format, argptr); | |
| 16 | 16 | va_end(argptr); |
| 17 | 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 | ||
| 13 | int __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 | } | |
| 22 | int __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 | ||
| 10 | extern 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 | ||
| 18 | extern size_t __ms_scanf_max_arg_count_internal (const char * format); | |
| 19 | ||
| 20 | int __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 | ||
| 10 | extern 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 | ||
| 18 | extern size_t __ms_wscanf_max_arg_count_internal (const wchar_t * format); | |
| 19 | ||
| 20 | int __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 | ||
| 12 | int __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 | 12 | |
| 13 | 13 | int __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 | ||
| 10 | extern 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 | ||
| 18 | extern size_t __ms_scanf_max_arg_count_internal (const char * format); | |
| 19 | ||
| 20 | int __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 | ||
| 10 | extern 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 | ||
| 18 | extern size_t __ms_wscanf_max_arg_count_internal (const wchar_t * format); | |
| 19 | ||
| 20 | int __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 | ||
| 13 | int __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 | 970 | _pthread_cleanup_dest (pthread_t t) |
| 971 | 971 | { |
| 972 | 972 | 	_pthread_v *tv; |
| 973 | 	unsigned int i, j; | |
| 973 | 	unsigned int j; | |
| 974 | 	int i; | |
| 974 | 975 | |
| 975 | 976 | 	if (!t) |
| 976 | 977 | 		return; |
| ... | ... | @@ -983,7 +984,7 @@ _pthread_cleanup_dest (pthread_t t) |
| 983 | 984 | 		int flag = 0; |
| 984 | 985 | |
| 985 | 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 | 989 | 			void *val = tv->keyval[i]; |
| 989 | 990 |
lib/libc/mingw/winpthreads/thread.h+1-1| ... | ... | @@ -74,6 +74,6 @@ void thread_print_set(int state); |
| 74 | 74 | void thread_print(volatile pthread_t t, char *txt); |
| 75 | 75 | #endif |
| 76 | 76 | int __pthread_shallcancel(void); |
| 77 | struct _pthread_v *WINPTHREAD_API __pth_gpointer_locked (pthread_t id); | |
| 77 | WINPTHREAD_API struct _pthread_v * __pth_gpointer_locked (pthread_t id); | |
| 78 | 78 | |
| 79 | 79 | #endif |
lib/std/zig/target.zig+2| ... | ... | @@ -242,6 +242,8 @@ pub fn isLibCLibName(target: std.Target, name: []const u8) bool { |
| 242 | 242 | return true; |
| 243 | 243 | if (eqlIgnoreCase(ignore_case, name, "wbemuuid")) |
| 244 | 244 | return true; |
| 245 | if (eqlIgnoreCase(ignore_case, name, "wiaguid")) | |
| 246 | return true; | |
| 245 | 247 | if (eqlIgnoreCase(ignore_case, name, "winpthread")) |
| 246 | 248 | return true; |
| 247 | 249 | if (eqlIgnoreCase(ignore_case, name, "wmcodecdspuuid")) |
src/mingw.zig+17-30| ... | ... | @@ -497,7 +497,7 @@ const mingw32_generic_src = [_][]const u8{ |
| 497 | 497 | "crt" ++ path.sep_str ++ "cxa_atexit.c", |
| 498 | 498 | "crt" ++ path.sep_str ++ "cxa_thread_atexit.c", |
| 499 | 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 | 501 | // mingwex |
| 502 | 502 | "cfguard" ++ path.sep_str ++ "mingw_cfguard_support.c", |
| 503 | 503 | "complex" ++ path.sep_str ++ "_cabs.c", |
| ... | ... | @@ -630,8 +630,6 @@ const mingw32_generic_src = [_][]const u8{ |
| 630 | 630 | "misc" ++ path.sep_str ++ "getlogin.c", |
| 631 | 631 | "misc" ++ path.sep_str ++ "getopt.c", |
| 632 | 632 | "misc" ++ path.sep_str ++ "gettimeofday.c", |
| 633 | "misc" ++ path.sep_str ++ "isblank.c", | |
| 634 | "misc" ++ path.sep_str ++ "iswblank.c", | |
| 635 | 633 | "misc" ++ path.sep_str ++ "mempcpy.c", |
| 636 | 634 | "misc" ++ path.sep_str ++ "mingw-access.c", |
| 637 | 635 | "misc" ++ path.sep_str ++ "mingw-aligned-malloc.c", |
| ... | ... | @@ -658,8 +656,6 @@ const mingw32_generic_src = [_][]const u8{ |
| 658 | 656 | "misc" ++ path.sep_str ++ "wcstold.c", |
| 659 | 657 | "misc" ++ path.sep_str ++ "wcstoumax.c", |
| 660 | 658 | "misc" ++ path.sep_str ++ "wctob.c", |
| 661 | "misc" ++ path.sep_str ++ "wctrans.c", | |
| 662 | "misc" ++ path.sep_str ++ "wctype.c", | |
| 663 | 659 | "misc" ++ path.sep_str ++ "wdirent.c", |
| 664 | 660 | "misc" ++ path.sep_str ++ "winbs_uint64.c", |
| 665 | 661 | "misc" ++ path.sep_str ++ "winbs_ulong.c", |
| ... | ... | @@ -692,35 +688,36 @@ const mingw32_generic_src = [_][]const u8{ |
| 692 | 688 | "stdio" ++ path.sep_str ++ "lseek64.c", |
| 693 | 689 | "stdio" ++ path.sep_str ++ "mingw_asprintf.c", |
| 694 | 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 | 692 | "stdio" ++ path.sep_str ++ "mingw_fscanf.c", |
| 697 | 693 | "stdio" ++ path.sep_str ++ "mingw_fwscanf.c", |
| 698 | 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 | 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 | 700 | "stdio" ++ path.sep_str ++ "mingw_scanf.c", |
| 703 | 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 | 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 | 705 | "stdio" ++ path.sep_str ++ "mingw_sscanf.c", |
| 708 | 706 | "stdio" ++ path.sep_str ++ "mingw_swscanf.c", |
| 709 | 707 | "stdio" ++ path.sep_str ++ "mingw_vasprintf.c", |
| 710 | 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 | 710 | "stdio" ++ path.sep_str ++ "mingw_vfscanf.c", |
| 713 | 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 | 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 | 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 | 718 | "stdio" ++ path.sep_str ++ "mingw_wscanf.c", |
| 720 | "stdio" ++ path.sep_str ++ "mingw_wvfscanf.c", | |
| 721 | "stdio" ++ path.sep_str ++ "scanf2-argcount-char.c", | |
| 722 | "stdio" ++ path.sep_str ++ "scanf2-argcount-wchar.c", | |
| 723 | "stdio" ++ path.sep_str ++ "scanf.S", | |
| 719 | "stdio" ++ path.sep_str ++ "mingw_vfwscanf.c", | |
| 720 | "stdio" ++ path.sep_str ++ "mingw_vswscanf.c", | |
| 724 | 721 | "stdio" ++ path.sep_str ++ "snprintf.c", |
| 725 | 722 | "stdio" ++ path.sep_str ++ "snwprintf.c", |
| 726 | 723 | "stdio" ++ path.sep_str ++ "strtok_r.c", |
| ... | ... | @@ -728,20 +725,8 @@ const mingw32_generic_src = [_][]const u8{ |
| 728 | 725 | "stdio" ++ path.sep_str ++ "ulltoa.c", |
| 729 | 726 | "stdio" ++ path.sep_str ++ "ulltow.c", |
| 730 | 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 | 728 | "stdio" ++ path.sep_str ++ "vsnprintf.c", |
| 738 | 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 | 730 | "stdio" ++ path.sep_str ++ "wtoll.c", |
| 746 | 731 | // mingwthrd |
| 747 | 732 | "libsrc" ++ path.sep_str ++ "mingwthrd_mt.c", |
| ... | ... | @@ -768,6 +753,7 @@ const mingw32_generic_src = [_][]const u8{ |
| 768 | 753 | "stdio" ++ path.sep_str ++ "ucrt_fprintf.c", |
| 769 | 754 | "stdio" ++ path.sep_str ++ "ucrt_fscanf.c", |
| 770 | 755 | "stdio" ++ path.sep_str ++ "ucrt_fwprintf.c", |
| 756 | "stdio" ++ path.sep_str ++ "ucrt_ms_fprintf.c", | |
| 771 | 757 | "stdio" ++ path.sep_str ++ "ucrt_ms_fwprintf.c", |
| 772 | 758 | "stdio" ++ path.sep_str ++ "ucrt_printf.c", |
| 773 | 759 | "stdio" ++ path.sep_str ++ "ucrt_scanf.c", |
| ... | ... | @@ -933,6 +919,7 @@ const mingw32_x86_src = [_][]const u8{ |
| 933 | 919 | "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cosl.c", |
| 934 | 920 | "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cosl_internal.S", |
| 935 | 921 | "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cossin.c", |
| 922 | "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "cossinl.c", | |
| 936 | 923 | "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "exp2l.S", |
| 937 | 924 | "math" ++ path.sep_str ++ "x86" ++ path.sep_str ++ "expl.c", |
| 938 | 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 | 42 | |
| 43 | 43 | src_crt_dir.copyFile(entry.path, dest_crt_dir, entry.path, .{}) catch |err| switch (err) { |
| 44 | 44 | error.FileNotFound => { |
| 45 | const whitelisted = for (whitelist) |item| { | |
| 45 | const keep = for (kept_crt_files) |item| { | |
| 46 | 46 | if (std.mem.eql(u8, entry.path, item)) break true; |
| 47 | if (std.mem.startsWith(u8, entry.path, "winpthreads/")) break true; | |
| 47 | 48 | } else false; |
| 48 | 49 | |
| 49 | if (!whitelisted) { | |
| 50 | if (!keep) { | |
| 50 | 51 | std.log.warn("deleting {s}", .{entry.path}); |
| 51 | 52 | try dest_crt_dir.deleteFile(entry.path); |
| 52 | 53 | } |
| ... | ... | @@ -61,6 +62,51 @@ pub fn main() !void { |
| 61 | 62 | if (fail) std.process.exit(1); |
| 62 | 63 | } |
| 63 | 64 | |
| 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 | 111 | // Also add all new def and def.in files. |
| 66 | 112 | var walker = try src_crt_dir.walk(arena); |
| ... | ... | @@ -71,19 +117,19 @@ pub fn main() !void { |
| 71 | 117 | while (try walker.next()) |entry| { |
| 72 | 118 | if (entry.kind != .file) continue; |
| 73 | 119 | |
| 74 | const ok_ext = for (ok_exts) |ext| { | |
| 120 | const ok_ext = for (def_exts) |ext| { | |
| 75 | 121 | if (std.mem.endsWith(u8, entry.path, ext)) break true; |
| 76 | 122 | } else false; |
| 77 | 123 | |
| 78 | 124 | if (!ok_ext) continue; |
| 79 | 125 | |
| 80 | const ok_prefix = for (ok_prefixes) |p| { | |
| 126 | const ok_prefix = for (def_dirs) |p| { | |
| 81 | 127 | if (std.mem.startsWith(u8, entry.path, p)) break true; |
| 82 | 128 | } else false; |
| 83 | 129 | |
| 84 | 130 | if (!ok_prefix) continue; |
| 85 | 131 | |
| 86 | const blacklisted = for (blacklist) |item| { | |
| 132 | const blacklisted = for (blacklisted_defs) |item| { | |
| 87 | 133 | if (std.mem.eql(u8, entry.basename, item)) break true; |
| 88 | 134 | } else false; |
| 89 | 135 | |
| ... | ... | @@ -106,17 +152,17 @@ pub fn main() !void { |
| 106 | 152 | return std.process.cleanExit(); |
| 107 | 153 | } |
| 108 | 154 | |
| 109 | const whitelist = [_][]const u8{ | |
| 155 | const kept_crt_files = [_][]const u8{ | |
| 110 | 156 | "COPYING", |
| 111 | 157 | "include" ++ std.fs.path.sep_str ++ "config.h", |
| 112 | 158 | }; |
| 113 | 159 | |
| 114 | const ok_exts = [_][]const u8{ | |
| 160 | const def_exts = [_][]const u8{ | |
| 115 | 161 | ".def", |
| 116 | 162 | ".def.in", |
| 117 | 163 | }; |
| 118 | 164 | |
| 119 | const ok_prefixes = [_][]const u8{ | |
| 165 | const def_dirs = [_][]const u8{ | |
| 120 | 166 | "lib32" ++ std.fs.path.sep_str, |
| 121 | 167 | "lib64" ++ std.fs.path.sep_str, |
| 122 | 168 | "libarm32" ++ std.fs.path.sep_str, |
| ... | ... | @@ -125,7 +171,7 @@ const ok_prefixes = [_][]const u8{ |
| 125 | 171 | "def-include" ++ std.fs.path.sep_str, |
| 126 | 172 | }; |
| 127 | 173 | |
| 128 | const blacklist = [_][]const u8{ | |
| 174 | const blacklisted_defs = [_][]const u8{ | |
| 129 | 175 | "crtdll.def.in", |
| 130 | 176 | |
| 131 | 177 | "msvcp60.def", |