https://git.reactos.org/?p=reactos.git;a=commitdiff;h=04e0dc4a7a18bb1ab69f7a...
commit 04e0dc4a7a18bb1ab69f7ae9720259786025c530 Author: Timo Kreuzer timo.kreuzer@reactos.org AuthorDate: Sat May 11 07:03:12 2024 +0200 Commit: Timo Kreuzer timo.kreuzer@reactos.org CommitDate: Thu Jan 16 14:18:53 2025 +0200
[UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3
Imported from https://www.nuget.org/packages/Microsoft.Windows.SDK.CRTSource/10.0.22621.3 License: MIT --- sdk/include/ucrt/assert.h | 50 + sdk/include/ucrt/complex.h | 580 ++++ sdk/include/ucrt/conio.h | 504 ++++ sdk/include/ucrt/corecrt.h | 2075 ++++++++++++++ sdk/include/ucrt/corecrt_io.h | 572 ++++ sdk/include/ucrt/corecrt_malloc.h | 234 ++ sdk/include/ucrt/corecrt_math.h | 998 +++++++ sdk/include/ucrt/corecrt_math_defines.h | 39 + sdk/include/ucrt/corecrt_memcpy_s.h | 93 + sdk/include/ucrt/corecrt_memory.h | 122 + sdk/include/ucrt/corecrt_search.h | 218 ++ sdk/include/ucrt/corecrt_share.h | 33 + sdk/include/ucrt/corecrt_startup.h | 199 ++ sdk/include/ucrt/corecrt_stdio_config.h | 131 + sdk/include/ucrt/corecrt_terminate.h | 51 + sdk/include/ucrt/corecrt_wconio.h | 424 +++ sdk/include/ucrt/corecrt_wctype.h | 205 ++ sdk/include/ucrt/corecrt_wdirect.h | 63 + sdk/include/ucrt/corecrt_wio.h | 270 ++ sdk/include/ucrt/corecrt_wprocess.h | 127 + sdk/include/ucrt/corecrt_wstdio.h | 2171 +++++++++++++++ sdk/include/ucrt/corecrt_wstdlib.h | 481 ++++ sdk/include/ucrt/corecrt_wstring.h | 641 +++++ sdk/include/ucrt/corecrt_wtime.h | 207 ++ sdk/include/ucrt/crtdbg.h | 816 ++++++ sdk/include/ucrt/ctype.h | 310 +++ sdk/include/ucrt/direct.h | 131 + sdk/include/ucrt/dos.h | 61 + sdk/include/ucrt/errno.h | 137 + sdk/include/ucrt/fcntl.h | 68 + sdk/include/ucrt/fenv.h | 160 ++ sdk/include/ucrt/float.h | 409 +++ sdk/include/ucrt/fpieee.h | 478 ++++ sdk/include/ucrt/inttypes.h | 341 +++ sdk/include/ucrt/io.h | 13 + sdk/include/ucrt/locale.h | 184 ++ sdk/include/ucrt/malloc.h | 184 ++ sdk/include/ucrt/math.h | 15 + sdk/include/ucrt/mbctype.h | 173 ++ sdk/include/ucrt/mbstring.h | 1235 +++++++++ sdk/include/ucrt/memory.h | 13 + sdk/include/ucrt/minmax.h | 28 + sdk/include/ucrt/new.h | 68 + sdk/include/ucrt/process.h | 375 +++ sdk/include/ucrt/safeint.h | 1665 +++++++++++ sdk/include/ucrt/safeint_internal.h | 2898 ++++++++++++++++++++ sdk/include/ucrt/search.h | 13 + sdk/include/ucrt/share.h | 13 + sdk/include/ucrt/signal.h | 72 + sdk/include/ucrt/stdalign.h | 31 + sdk/include/ucrt/stddef.h | 64 + sdk/include/ucrt/stdio.h | 2448 +++++++++++++++++ sdk/include/ucrt/stdlib.h | 1362 +++++++++ sdk/include/ucrt/stdnoreturn.h | 28 + sdk/include/ucrt/string.h | 592 ++++ sdk/include/ucrt/sys/locking.h | 31 + sdk/include/ucrt/sys/stat.h | 249 ++ sdk/include/ucrt/sys/timeb.h | 112 + sdk/include/ucrt/sys/types.h | 51 + sdk/include/ucrt/sys/utime.h | 163 ++ sdk/include/ucrt/tchar.h | 2330 ++++++++++++++++ sdk/include/ucrt/tgmath.h | 650 +++++ sdk/include/ucrt/time.h | 648 +++++ sdk/include/ucrt/uchar.h | 50 + sdk/include/ucrt/wchar.h | 286 ++ sdk/include/ucrt/wctype.h | 33 + sdk/lib/ucrt/conio/cgets.cpp | 128 + sdk/lib/ucrt/conio/cgetws.cpp | 156 ++ sdk/lib/ucrt/conio/cprintf.cpp | 104 + sdk/lib/ucrt/conio/cputs.cpp | 38 + sdk/lib/ucrt/conio/cputws.cpp | 63 + sdk/lib/ucrt/conio/cscanf.cpp | 56 + sdk/lib/ucrt/conio/getch.cpp | 569 ++++ sdk/lib/ucrt/conio/getwch.cpp | 201 ++ sdk/lib/ucrt/conio/initcon.cpp | 83 + sdk/lib/ucrt/conio/initconin.cpp | 162 ++ sdk/lib/ucrt/conio/pipe.cpp | 113 + sdk/lib/ucrt/conio/popen.cpp | 488 ++++ sdk/lib/ucrt/conio/putch.cpp | 82 + sdk/lib/ucrt/conio/putwch.cpp | 39 + sdk/lib/ucrt/convert/_ctype.cpp | 254 ++ sdk/lib/ucrt/convert/_fptostr.cpp | 173 ++ sdk/lib/ucrt/convert/_mbslen.cpp | 119 + sdk/lib/ucrt/convert/_wctype.cpp | 171 ++ sdk/lib/ucrt/convert/atof.cpp | 96 + sdk/lib/ucrt/convert/atoldbl.cpp | 833 ++++++ sdk/lib/ucrt/convert/atox.cpp | 107 + sdk/lib/ucrt/convert/c16rtomb.cpp | 94 + sdk/lib/ucrt/convert/c32rtomb.cpp | 93 + sdk/lib/ucrt/convert/cfout.cpp | 367 +++ sdk/lib/ucrt/convert/common_utf8.cpp | 27 + sdk/lib/ucrt/convert/cvt.cpp | 849 ++++++ sdk/lib/ucrt/convert/fcvt.cpp | 296 ++ sdk/lib/ucrt/convert/fp_flags.cpp | 20 + sdk/lib/ucrt/convert/gcvt.cpp | 159 ++ sdk/lib/ucrt/convert/isctype.cpp | 116 + sdk/lib/ucrt/convert/ismbstr.cpp | 64 + sdk/lib/ucrt/convert/iswctype.cpp | 55 + sdk/lib/ucrt/convert/mblen.cpp | 124 + sdk/lib/ucrt/convert/mbrtoc16.cpp | 88 + sdk/lib/ucrt/convert/mbrtoc32.cpp | 148 + sdk/lib/ucrt/convert/mbrtowc.cpp | 610 ++++ sdk/lib/ucrt/convert/mbstowcs.cpp | 326 +++ sdk/lib/ucrt/convert/mbtowc.cpp | 153 ++ sdk/lib/ucrt/convert/strtod.cpp | 164 ++ sdk/lib/ucrt/convert/strtox.cpp | 400 +++ sdk/lib/ucrt/convert/swab.cpp | 34 + sdk/lib/ucrt/convert/tolower_toupper.cpp | 117 + sdk/lib/ucrt/convert/towlower.cpp | 105 + sdk/lib/ucrt/convert/towupper.cpp | 105 + sdk/lib/ucrt/convert/wcrtomb.cpp | 533 ++++ sdk/lib/ucrt/convert/wcstombs.cpp | 417 +++ sdk/lib/ucrt/convert/wctomb.cpp | 217 ++ sdk/lib/ucrt/convert/wctrans.cpp | 52 + sdk/lib/ucrt/convert/wctype.cpp | 57 + sdk/lib/ucrt/convert/xtoa.cpp | 369 +++ sdk/lib/ucrt/dll/appcrt_dllmain.cpp | 121 + sdk/lib/ucrt/dll/empty.cpp | 0 sdk/lib/ucrt/env/environment_initialization.cpp | 336 +++ sdk/lib/ucrt/env/get_environment_from_os.cpp | 121 + sdk/lib/ucrt/env/getenv.cpp | 329 +++ sdk/lib/ucrt/env/getpath.cpp | 159 ++ sdk/lib/ucrt/env/putenv.cpp | 243 ++ sdk/lib/ucrt/env/searchenv.cpp | 215 ++ sdk/lib/ucrt/env/setenv.cpp | 373 +++ sdk/lib/ucrt/exec/cenvarg.cpp | 369 +++ sdk/lib/ucrt/exec/getproc.cpp | 67 + sdk/lib/ucrt/exec/loaddll.cpp | 65 + sdk/lib/ucrt/exec/spawnl.cpp | 143 + sdk/lib/ucrt/exec/spawnlp.cpp | 140 + sdk/lib/ucrt/exec/spawnv.cpp | 451 +++ sdk/lib/ucrt/exec/spawnvp.cpp | 212 ++ sdk/lib/ucrt/exec/system.cpp | 86 + sdk/lib/ucrt/exec/wait.cpp | 87 + sdk/lib/ucrt/fenv/mapping.txt | 28 + sdk/lib/ucrt/filesystem/access.cpp | 34 + sdk/lib/ucrt/filesystem/chmod.cpp | 31 + sdk/lib/ucrt/filesystem/findfile.cpp | 395 +++ sdk/lib/ucrt/filesystem/fullpath.cpp | 153 ++ sdk/lib/ucrt/filesystem/makepath.cpp | 205 ++ sdk/lib/ucrt/filesystem/mkdir.cpp | 29 + sdk/lib/ucrt/filesystem/rename.cpp | 39 + sdk/lib/ucrt/filesystem/rmdir.cpp | 31 + sdk/lib/ucrt/filesystem/splitpath.cpp | 352 +++ sdk/lib/ucrt/filesystem/stat.cpp | 606 ++++ sdk/lib/ucrt/filesystem/unlink.cpp | 35 + sdk/lib/ucrt/filesystem/waccess.cpp | 55 + sdk/lib/ucrt/filesystem/wchmod.cpp | 45 + sdk/lib/ucrt/filesystem/wmkdir.cpp | 24 + sdk/lib/ucrt/filesystem/wrename.cpp | 25 + sdk/lib/ucrt/filesystem/wrmdir.cpp | 26 + sdk/lib/ucrt/filesystem/wunlink.cpp | 31 + sdk/lib/ucrt/heap/align.cpp | 638 +++++ sdk/lib/ucrt/heap/calloc.cpp | 30 + sdk/lib/ucrt/heap/calloc_base.cpp | 53 + sdk/lib/ucrt/heap/debug_heap.cpp | 1979 +++++++++++++ sdk/lib/ucrt/heap/debug_heap_hook.cpp | 40 + sdk/lib/ucrt/heap/expand.cpp | 100 + sdk/lib/ucrt/heap/free.cpp | 32 + sdk/lib/ucrt/heap/free_base.cpp | 110 + sdk/lib/ucrt/heap/heap_handle.cpp | 52 + sdk/lib/ucrt/heap/heapchk.cpp | 21 + sdk/lib/ucrt/heap/heapmin.cpp | 19 + sdk/lib/ucrt/heap/heapwalk.cpp | 90 + sdk/lib/ucrt/heap/malloc.cpp | 27 + sdk/lib/ucrt/heap/malloc_base.cpp | 47 + sdk/lib/ucrt/heap/msize.cpp | 42 + sdk/lib/ucrt/heap/new_handler.cpp | 83 + sdk/lib/ucrt/heap/new_mode.cpp | 31 + sdk/lib/ucrt/heap/realloc.cpp | 41 + sdk/lib/ucrt/heap/realloc_base.cpp | 59 + sdk/lib/ucrt/heap/recalloc.cpp | 70 + sdk/lib/ucrt/inc/corecrt_internal.h | 2119 ++++++++++++++ sdk/lib/ucrt/inc/corecrt_internal_big_integer.h | 931 +++++++ sdk/lib/ucrt/inc/corecrt_internal_fltintrn.h | 220 ++ sdk/lib/ucrt/inc/corecrt_internal_lowio.h | 328 +++ sdk/lib/ucrt/inc/corecrt_internal_mbstring.h | 152 + .../ucrt/inc/corecrt_internal_ptd_propagation.h | 569 ++++ sdk/lib/ucrt/inc/corecrt_internal_securecrt.h | 130 + sdk/lib/ucrt/inc/corecrt_internal_simd.h | 157 ++ sdk/lib/ucrt/inc/corecrt_internal_stdio.h | 864 ++++++ sdk/lib/ucrt/inc/corecrt_internal_stdio_input.h | 1613 +++++++++++ sdk/lib/ucrt/inc/corecrt_internal_stdio_output.h | 2809 +++++++++++++++++++ .../ucrt/inc/corecrt_internal_string_templates.h | 299 ++ sdk/lib/ucrt/inc/corecrt_internal_strtox.h | 2046 ++++++++++++++ sdk/lib/ucrt/inc/corecrt_internal_time.h | 216 ++ sdk/lib/ucrt/inc/corecrt_internal_traits.h | 276 ++ sdk/lib/ucrt/inc/corecrt_internal_win32_buffer.h | 799 ++++++ sdk/lib/ucrt/inc/i386/cruntime.inc | 323 +++ sdk/lib/ucrt/inc/ksamd64.inc | 2043 ++++++++++++++ sdk/lib/ucrt/inc/ksamd64_stub.inc | 1 + sdk/lib/ucrt/inc/kxamd64.inc | 1002 +++++++ sdk/lib/ucrt/inc/kxamd64_stub.inc | 1 + sdk/lib/ucrt/inc/macamd64.inc | 685 +++++ sdk/lib/ucrt/initializers/clock_initializer.cpp | 17 + .../initializers/console_input_initializer.cpp | 17 + .../initializers/console_output_initializer.cpp | 17 + sdk/lib/ucrt/initializers/fma3_initializer.cpp | 17 + sdk/lib/ucrt/initializers/fmode_initializer.cpp | 17 + .../ucrt/initializers/i386/sse2_initializer.cpp | 27 + sdk/lib/ucrt/initializers/locale_initializer.cpp | 17 + .../ucrt/initializers/multibyte_initializer.cpp | 20 + sdk/lib/ucrt/initializers/stdio_initializer.cpp | 19 + sdk/lib/ucrt/initializers/timeset_initializer.cpp | 17 + sdk/lib/ucrt/initializers/tmpfile_initializer.cpp | 17 + sdk/lib/ucrt/internal/CreateProcessA.cpp | 79 + sdk/lib/ucrt/internal/GetModuleFileNameA.cpp | 40 + sdk/lib/ucrt/internal/LoadLibraryExA.cpp | 34 + sdk/lib/ucrt/internal/OutputDebugStringA.cpp | 31 + sdk/lib/ucrt/internal/SetCurrentDirectoryA.cpp | 28 + sdk/lib/ucrt/internal/SetEnvironmentVariableA.cpp | 40 + sdk/lib/ucrt/internal/initialization.cpp | 345 +++ sdk/lib/ucrt/internal/locks.cpp | 71 + sdk/lib/ucrt/internal/peb_access.cpp | 22 + sdk/lib/ucrt/internal/per_thread_data.cpp | 345 +++ sdk/lib/ucrt/internal/report_runtime_error.cpp | 200 ++ sdk/lib/ucrt/internal/shared_initialization.cpp | 67 + sdk/lib/ucrt/internal/win_policies.cpp | 182 ++ sdk/lib/ucrt/internal/winapi_thunks.cpp | 936 +++++++ sdk/lib/ucrt/locale/CompareStringA.cpp | 232 ++ sdk/lib/ucrt/locale/CompareStringW.cpp | 67 + sdk/lib/ucrt/locale/GetLocaleInfoA.cpp | 165 ++ sdk/lib/ucrt/locale/GetStringTypeA.cpp | 100 + sdk/lib/ucrt/locale/LCMapStringA.cpp | 235 ++ sdk/lib/ucrt/locale/LCMapStringW.cpp | 74 + sdk/lib/ucrt/locale/ctype.cpp | 745 +++++ sdk/lib/ucrt/locale/get_qualified_locale.cpp | 851 ++++++ sdk/lib/ucrt/locale/getqloc_downlevel.cpp | 852 ++++++ sdk/lib/ucrt/locale/glstatus.cpp | 13 + sdk/lib/ucrt/locale/initctype.cpp | 339 +++ sdk/lib/ucrt/locale/initmon.cpp | 312 +++ sdk/lib/ucrt/locale/initnum.cpp | 235 ++ sdk/lib/ucrt/locale/inittime.cpp | 177 ++ sdk/lib/ucrt/locale/lcidtoname_downlevel.cpp | 604 ++++ .../locale/lconv_unsigned_char_initialization.cpp | 52 + sdk/lib/ucrt/locale/locale_refcounting.cpp | 353 +++ sdk/lib/ucrt/locale/locale_update.cpp | 55 + sdk/lib/ucrt/locale/localeconv.cpp | 86 + sdk/lib/ucrt/locale/nlsdata.cpp | 140 + sdk/lib/ucrt/locale/setlocale.cpp | 118 + sdk/lib/ucrt/locale/wsetlocale.cpp | 1430 ++++++++++ sdk/lib/ucrt/lowio/chsize.cpp | 148 + sdk/lib/ucrt/lowio/close.cpp | 101 + sdk/lib/ucrt/lowio/commit.cpp | 36 + sdk/lib/ucrt/lowio/creat.cpp | 41 + sdk/lib/ucrt/lowio/dup.cpp | 95 + sdk/lib/ucrt/lowio/dup2.cpp | 120 + sdk/lib/ucrt/lowio/eof.cpp | 50 + sdk/lib/ucrt/lowio/filelength.cpp | 62 + sdk/lib/ucrt/lowio/ioinit.cpp | 265 ++ sdk/lib/ucrt/lowio/isatty.cpp | 20 + sdk/lib/ucrt/lowio/locking.cpp | 120 + sdk/lib/ucrt/lowio/lseek.cpp | 171 ++ sdk/lib/ucrt/lowio/mktemp.cpp | 168 ++ sdk/lib/ucrt/lowio/open.cpp | 907 ++++++ sdk/lib/ucrt/lowio/osfinfo.cpp | 348 +++ sdk/lib/ucrt/lowio/read.cpp | 635 +++++ sdk/lib/ucrt/lowio/setmode.cpp | 121 + sdk/lib/ucrt/lowio/tell.cpp | 18 + sdk/lib/ucrt/lowio/telli64.cpp | 18 + sdk/lib/ucrt/lowio/txtmode.cpp | 47 + sdk/lib/ucrt/lowio/umask.cpp | 66 + sdk/lib/ucrt/lowio/write.cpp | 754 +++++ sdk/lib/ucrt/mbstring/ismbalnm.cpp | 54 + sdk/lib/ucrt/mbstring/ismbalph.cpp | 54 + sdk/lib/ucrt/mbstring/ismbbyte.cpp | 233 ++ sdk/lib/ucrt/mbstring/ismbdgt.cpp | 54 + sdk/lib/ucrt/mbstring/ismbgrph.cpp | 54 + sdk/lib/ucrt/mbstring/ismbknj.cpp | 118 + sdk/lib/ucrt/mbstring/ismblgl.cpp | 49 + sdk/lib/ucrt/mbstring/ismblwr.cpp | 54 + sdk/lib/ucrt/mbstring/ismbprn.cpp | 53 + sdk/lib/ucrt/mbstring/ismbpunc.cpp | 92 + sdk/lib/ucrt/mbstring/ismbsle.cpp | 76 + sdk/lib/ucrt/mbstring/ismbspc.cpp | 53 + sdk/lib/ucrt/mbstring/ismbupr.cpp | 52 + sdk/lib/ucrt/mbstring/mbbtype.cpp | 81 + sdk/lib/ucrt/mbstring/mbccpy.cpp | 48 + sdk/lib/ucrt/mbstring/mbccpy_s.cpp | 14 + sdk/lib/ucrt/mbstring/mbccpy_s_l.cpp | 58 + sdk/lib/ucrt/mbstring/mbclen.cpp | 49 + sdk/lib/ucrt/mbstring/mbclevel.cpp | 127 + sdk/lib/ucrt/mbstring/mbctype.cpp | 1105 ++++++++ sdk/lib/ucrt/mbstring/mbsbtype.cpp | 82 + sdk/lib/ucrt/mbstring/mbscat_s.cpp | 16 + sdk/lib/ucrt/mbstring/mbscat_s_l.cpp | 122 + sdk/lib/ucrt/mbstring/mbschr.cpp | 84 + sdk/lib/ucrt/mbstring/mbscmp.cpp | 87 + sdk/lib/ucrt/mbstring/mbscoll.cpp | 81 + sdk/lib/ucrt/mbstring/mbscpy_s.cpp | 16 + sdk/lib/ucrt/mbstring/mbscpy_s_l.cpp | 76 + sdk/lib/ucrt/mbstring/mbscspn.cpp | 143 + sdk/lib/ucrt/mbstring/mbsdec.cpp | 109 + sdk/lib/ucrt/mbstring/mbsicmp.cpp | 142 + sdk/lib/ucrt/mbstring/mbsicoll.cpp | 79 + sdk/lib/ucrt/mbstring/mbsinc.cpp | 76 + sdk/lib/ucrt/mbstring/mbslen.cpp | 61 + sdk/lib/ucrt/mbstring/mbslen_s.cpp | 84 + sdk/lib/ucrt/mbstring/mbslwr.cpp | 136 + sdk/lib/ucrt/mbstring/mbsnbcat.cpp | 116 + sdk/lib/ucrt/mbstring/mbsnbcat_s.cpp | 16 + sdk/lib/ucrt/mbstring/mbsnbcat_s_l.cpp | 21 + sdk/lib/ucrt/mbstring/mbsnbcmp.cpp | 107 + sdk/lib/ucrt/mbstring/mbsnbcnt.cpp | 71 + sdk/lib/ucrt/mbstring/mbsnbcol.cpp | 86 + sdk/lib/ucrt/mbstring/mbsnbcpy.cpp | 103 + sdk/lib/ucrt/mbstring/mbsnbcpy_s.cpp | 16 + sdk/lib/ucrt/mbstring/mbsnbcpy_s_l.cpp | 21 + sdk/lib/ucrt/mbstring/mbsnbicm.cpp | 133 + sdk/lib/ucrt/mbstring/mbsnbico.cpp | 82 + sdk/lib/ucrt/mbstring/mbsnbset.cpp | 136 + sdk/lib/ucrt/mbstring/mbsnbset_s.cpp | 17 + sdk/lib/ucrt/mbstring/mbsnbset_s_l.cpp | 21 + sdk/lib/ucrt/mbstring/mbsncat.cpp | 110 + sdk/lib/ucrt/mbstring/mbsncat_s.cpp | 16 + sdk/lib/ucrt/mbstring/mbsncat_s.inl | 203 ++ sdk/lib/ucrt/mbstring/mbsncat_s_l.cpp | 21 + sdk/lib/ucrt/mbstring/mbsnccnt.cpp | 67 + sdk/lib/ucrt/mbstring/mbsncmp.cpp | 92 + sdk/lib/ucrt/mbstring/mbsncoll.cpp | 91 + sdk/lib/ucrt/mbstring/mbsncpy.cpp | 96 + sdk/lib/ucrt/mbstring/mbsncpy_s.cpp | 16 + sdk/lib/ucrt/mbstring/mbsncpy_s.inl | 208 ++ sdk/lib/ucrt/mbstring/mbsncpy_s_l.cpp | 21 + sdk/lib/ucrt/mbstring/mbsnextc.cpp | 64 + sdk/lib/ucrt/mbstring/mbsnicmp.cpp | 115 + sdk/lib/ucrt/mbstring/mbsnicol.cpp | 93 + sdk/lib/ucrt/mbstring/mbsninc.cpp | 56 + sdk/lib/ucrt/mbstring/mbsnset.cpp | 143 + sdk/lib/ucrt/mbstring/mbsnset_s.cpp | 17 + sdk/lib/ucrt/mbstring/mbsnset_s.inl | 132 + sdk/lib/ucrt/mbstring/mbsnset_s_l.cpp | 21 + sdk/lib/ucrt/mbstring/mbspbrk.cpp | 16 + sdk/lib/ucrt/mbstring/mbsrchr.cpp | 83 + sdk/lib/ucrt/mbstring/mbsrev.cpp | 108 + sdk/lib/ucrt/mbstring/mbsset.cpp | 110 + sdk/lib/ucrt/mbstring/mbsset_s.cpp | 16 + sdk/lib/ucrt/mbstring/mbsset_s_l.cpp | 89 + sdk/lib/ucrt/mbstring/mbsspn.cpp | 130 + sdk/lib/ucrt/mbstring/mbsspnp.cpp | 16 + sdk/lib/ucrt/mbstring/mbsstr.cpp | 101 + sdk/lib/ucrt/mbstring/mbstok.cpp | 69 + sdk/lib/ucrt/mbstring/mbstok_s.cpp | 147 + sdk/lib/ucrt/mbstring/mbsupr.cpp | 133 + sdk/lib/ucrt/mbstring/mbtohira.cpp | 51 + sdk/lib/ucrt/mbstring/mbtokata.cpp | 52 + sdk/lib/ucrt/mbstring/mbtolwr.cpp | 85 + sdk/lib/ucrt/mbstring/mbtoupr.cpp | 84 + sdk/lib/ucrt/mbstring/tojisjms.cpp | 138 + sdk/lib/ucrt/mbstring/tombbmbc.cpp | 329 +++ sdk/lib/ucrt/misc/_strerr.cpp | 203 ++ sdk/lib/ucrt/misc/chdir.cpp | 109 + sdk/lib/ucrt/misc/crtmbox.cpp | 94 + sdk/lib/ucrt/misc/dbgrpt.cpp | 467 ++++ sdk/lib/ucrt/misc/dbgrptt.cpp | 688 +++++ sdk/lib/ucrt/misc/debug_fill_threshold.cpp | 29 + sdk/lib/ucrt/misc/drive.cpp | 77 + sdk/lib/ucrt/misc/drivemap.cpp | 31 + sdk/lib/ucrt/misc/drivfree.cpp | 55 + sdk/lib/ucrt/misc/errno.cpp | 200 ++ sdk/lib/ucrt/misc/exception_filter.cpp | 222 ++ sdk/lib/ucrt/misc/getcwd.cpp | 265 ++ sdk/lib/ucrt/misc/getpid.cpp | 16 + sdk/lib/ucrt/misc/invalid_parameter.cpp | 309 +++ sdk/lib/ucrt/misc/is_wctype.cpp | 39 + sdk/lib/ucrt/misc/perror.cpp | 71 + sdk/lib/ucrt/misc/resetstk.cpp | 111 + sdk/lib/ucrt/misc/set_error_mode.cpp | 78 + sdk/lib/ucrt/misc/seterrm.cpp | 39 + sdk/lib/ucrt/misc/signal.cpp | 579 ++++ sdk/lib/ucrt/misc/slbeep.cpp | 60 + sdk/lib/ucrt/misc/strerror.cpp | 146 + sdk/lib/ucrt/misc/syserr.cpp | 150 + sdk/lib/ucrt/misc/systime.cpp | 63 + sdk/lib/ucrt/misc/terminate.cpp | 59 + sdk/lib/ucrt/misc/wperror.cpp | 66 + sdk/lib/ucrt/startup/abort.cpp | 114 + sdk/lib/ucrt/startup/argv_data.cpp | 75 + sdk/lib/ucrt/startup/argv_parsing.cpp | 404 +++ sdk/lib/ucrt/startup/argv_wildcards.cpp | 391 +++ sdk/lib/ucrt/startup/argv_winmain.cpp | 111 + sdk/lib/ucrt/startup/assert.cpp | 444 +++ sdk/lib/ucrt/startup/exit.cpp | 313 +++ sdk/lib/ucrt/startup/initterm.cpp | 46 + sdk/lib/ucrt/startup/onexit.cpp | 231 ++ sdk/lib/ucrt/startup/thread.cpp | 278 ++ sdk/lib/ucrt/stdio/_filbuf.cpp | 188 ++ sdk/lib/ucrt/stdio/_file.cpp | 179 ++ sdk/lib/ucrt/stdio/_flsbuf.cpp | 213 ++ sdk/lib/ucrt/stdio/_freebuf.cpp | 33 + sdk/lib/ucrt/stdio/_getbuf.cpp | 43 + sdk/lib/ucrt/stdio/_sftbuf.cpp | 146 + sdk/lib/ucrt/stdio/clearerr.cpp | 37 + sdk/lib/ucrt/stdio/closeall.cpp | 44 + sdk/lib/ucrt/stdio/fclose.cpp | 86 + sdk/lib/ucrt/stdio/fdopen.cpp | 70 + sdk/lib/ucrt/stdio/feoferr.cpp | 29 + sdk/lib/ucrt/stdio/fflush.cpp | 264 ++ sdk/lib/ucrt/stdio/fgetc.cpp | 81 + sdk/lib/ucrt/stdio/fgetpos.cpp | 26 + sdk/lib/ucrt/stdio/fgets.cpp | 100 + sdk/lib/ucrt/stdio/fgetwc.cpp | 136 + sdk/lib/ucrt/stdio/fileno.cpp | 19 + sdk/lib/ucrt/stdio/fopen.cpp | 139 + sdk/lib/ucrt/stdio/fputc.cpp | 97 + sdk/lib/ucrt/stdio/fputs.cpp | 42 + sdk/lib/ucrt/stdio/fputwc.cpp | 145 + sdk/lib/ucrt/stdio/fputws.cpp | 43 + sdk/lib/ucrt/stdio/fread.cpp | 254 ++ sdk/lib/ucrt/stdio/freopen.cpp | 128 + sdk/lib/ucrt/stdio/fseek.cpp | 247 ++ sdk/lib/ucrt/stdio/fsetpos.cpp | 22 + sdk/lib/ucrt/stdio/ftell.cpp | 399 +++ sdk/lib/ucrt/stdio/fwrite.cpp | 196 ++ sdk/lib/ucrt/stdio/gets.cpp | 148 + sdk/lib/ucrt/stdio/gettemppath.cpp | 39 + sdk/lib/ucrt/stdio/getw.cpp | 48 + sdk/lib/ucrt/stdio/input.cpp | 135 + sdk/lib/ucrt/stdio/ncommode.cpp | 20 + sdk/lib/ucrt/stdio/openfile.cpp | 77 + sdk/lib/ucrt/stdio/output.cpp | 445 +++ sdk/lib/ucrt/stdio/printf_count_output.cpp | 35 + sdk/lib/ucrt/stdio/puts.cpp | 45 + sdk/lib/ucrt/stdio/putw.cpp | 43 + sdk/lib/ucrt/stdio/putws.cpp | 48 + sdk/lib/ucrt/stdio/rewind.cpp | 60 + sdk/lib/ucrt/stdio/rmtmp.cpp | 75 + sdk/lib/ucrt/stdio/setbuf.cpp | 28 + sdk/lib/ucrt/stdio/setmaxf.cpp | 71 + sdk/lib/ucrt/stdio/setvbuf.cpp | 118 + sdk/lib/ucrt/stdio/stream.cpp | 106 + sdk/lib/ucrt/stdio/tempnam.cpp | 294 ++ sdk/lib/ucrt/stdio/tmpfile.cpp | 509 ++++ sdk/lib/ucrt/stdio/ungetc.cpp | 92 + sdk/lib/ucrt/stdio/ungetwc.cpp | 181 ++ sdk/lib/ucrt/stdlib/abs.cpp | 24 + sdk/lib/ucrt/stdlib/bsearch.cpp | 126 + sdk/lib/ucrt/stdlib/bsearch_s.cpp | 13 + sdk/lib/ucrt/stdlib/byteswap.cpp | 62 + sdk/lib/ucrt/stdlib/div.cpp | 23 + sdk/lib/ucrt/stdlib/imaxabs.cpp | 22 + sdk/lib/ucrt/stdlib/imaxdiv.cpp | 40 + sdk/lib/ucrt/stdlib/labs.cpp | 25 + sdk/lib/ucrt/stdlib/ldiv.cpp | 23 + sdk/lib/ucrt/stdlib/lfind.cpp | 80 + sdk/lib/ucrt/stdlib/lfind_s.cpp | 13 + sdk/lib/ucrt/stdlib/llabs.cpp | 19 + sdk/lib/ucrt/stdlib/lldiv.cpp | 23 + sdk/lib/ucrt/stdlib/lsearch.cpp | 91 + sdk/lib/ucrt/stdlib/lsearch_s.cpp | 14 + sdk/lib/ucrt/stdlib/qsort.cpp | 396 +++ sdk/lib/ucrt/stdlib/qsort_s.cpp | 13 + sdk/lib/ucrt/stdlib/rand.cpp | 28 + sdk/lib/ucrt/stdlib/rand_s.cpp | 25 + sdk/lib/ucrt/stdlib/rotl.cpp | 45 + sdk/lib/ucrt/stdlib/rotr.cpp | 45 + sdk/lib/ucrt/string/amd64/strcat.asm | 224 ++ sdk/lib/ucrt/string/amd64/strcmp.asm | 130 + sdk/lib/ucrt/string/amd64/strcspn.c | 13 + sdk/lib/ucrt/string/amd64/strlen.asm | 130 + sdk/lib/ucrt/string/amd64/strncat.asm | 227 ++ sdk/lib/ucrt/string/amd64/strncmp.asm | 125 + sdk/lib/ucrt/string/amd64/strncpy.asm | 169 ++ sdk/lib/ucrt/string/amd64/strpbrk.c | 13 + sdk/lib/ucrt/string/amd64/strspn.c | 502 ++++ sdk/lib/ucrt/string/arm/strlen.c | 42 + sdk/lib/ucrt/string/arm64/strlen.asm | 272 ++ sdk/lib/ucrt/string/arm64/wcslen.asm | 297 ++ sdk/lib/ucrt/string/i386/_memicmp.asm | 130 + sdk/lib/ucrt/string/i386/_strnicm.asm | 143 + sdk/lib/ucrt/string/i386/memccpy.asm | 135 + sdk/lib/ucrt/string/i386/strcat.asm | 231 ++ sdk/lib/ucrt/string/i386/strcmp.asm | 154 ++ sdk/lib/ucrt/string/i386/strcspn.asm | 16 + sdk/lib/ucrt/string/i386/strlen.asm | 125 + sdk/lib/ucrt/string/i386/strncat.asm | 252 ++ sdk/lib/ucrt/string/i386/strncmp.asm | 173 ++ sdk/lib/ucrt/string/i386/strncpy.asm | 239 ++ sdk/lib/ucrt/string/i386/strnset.asm | 89 + sdk/lib/ucrt/string/i386/strpbrk.asm | 16 + sdk/lib/ucrt/string/i386/strrev.asm | 105 + sdk/lib/ucrt/string/i386/strset.asm | 78 + sdk/lib/ucrt/string/i386/strspn.asm | 262 ++ sdk/lib/ucrt/string/memccpy.c | 48 + sdk/lib/ucrt/string/memcpy_s.cpp | 10 + sdk/lib/ucrt/string/memicmp.cpp | 120 + sdk/lib/ucrt/string/strcat.c | 80 + sdk/lib/ucrt/string/strcat_s.cpp | 21 + sdk/lib/ucrt/string/strcmp.c | 52 + sdk/lib/ucrt/string/strcoll.cpp | 78 + sdk/lib/ucrt/string/strcpy_s.cpp | 20 + sdk/lib/ucrt/string/strcspn.c | 12 + sdk/lib/ucrt/string/strdup.cpp | 61 + sdk/lib/ucrt/string/stricmp.cpp | 105 + sdk/lib/ucrt/string/stricoll.cpp | 86 + sdk/lib/ucrt/string/strlwr.cpp | 206 ++ sdk/lib/ucrt/string/strncat.c | 56 + sdk/lib/ucrt/string/strncat_s.cpp | 22 + sdk/lib/ucrt/string/strncmp.c | 101 + sdk/lib/ucrt/string/strncnt.cpp | 24 + sdk/lib/ucrt/string/strncoll.cpp | 98 + sdk/lib/ucrt/string/strncpy.c | 56 + sdk/lib/ucrt/string/strncpy_s.cpp | 22 + sdk/lib/ucrt/string/strnicmp.cpp | 129 + sdk/lib/ucrt/string/strnicol.cpp | 93 + sdk/lib/ucrt/string/strnlen.cpp | 223 ++ sdk/lib/ucrt/string/strnset.c | 46 + sdk/lib/ucrt/string/strnset_s.cpp | 23 + sdk/lib/ucrt/string/strpbrk.c | 12 + sdk/lib/ucrt/string/strrev.c | 51 + sdk/lib/ucrt/string/strset.c | 50 + sdk/lib/ucrt/string/strset_s.cpp | 21 + sdk/lib/ucrt/string/strspn.c | 170 ++ sdk/lib/ucrt/string/strtok.cpp | 33 + sdk/lib/ucrt/string/strtok_s.cpp | 83 + sdk/lib/ucrt/string/strupr.cpp | 206 ++ sdk/lib/ucrt/string/strxfrm.cpp | 147 + sdk/lib/ucrt/string/wcscat.cpp | 38 + sdk/lib/ucrt/string/wcscat_s.cpp | 21 + sdk/lib/ucrt/string/wcscmp.cpp | 40 + sdk/lib/ucrt/string/wcscoll.cpp | 88 + sdk/lib/ucrt/string/wcscpy.cpp | 27 + sdk/lib/ucrt/string/wcscpy_s.cpp | 18 + sdk/lib/ucrt/string/wcscspn.cpp | 36 + sdk/lib/ucrt/string/wcsdup.cpp | 60 + sdk/lib/ucrt/string/wcsicmp.cpp | 112 + sdk/lib/ucrt/string/wcsicoll.cpp | 93 + sdk/lib/ucrt/string/wcslwr.cpp | 192 ++ sdk/lib/ucrt/string/wcsncat.cpp | 39 + sdk/lib/ucrt/string/wcsncat_s.cpp | 20 + sdk/lib/ucrt/string/wcsncmp.cpp | 44 + sdk/lib/ucrt/string/wcsncnt.cpp | 24 + sdk/lib/ucrt/string/wcsncoll.cpp | 104 + sdk/lib/ucrt/string/wcsncpy.cpp | 45 + sdk/lib/ucrt/string/wcsncpy_s.cpp | 20 + sdk/lib/ucrt/string/wcsnicmp.cpp | 132 + sdk/lib/ucrt/string/wcsnicol.cpp | 103 + sdk/lib/ucrt/string/wcsnset.cpp | 26 + sdk/lib/ucrt/string/wcsnset_s.cpp | 21 + sdk/lib/ucrt/string/wcspbrk.cpp | 30 + sdk/lib/ucrt/string/wcsrev.cpp | 30 + sdk/lib/ucrt/string/wcsset.cpp | 29 + sdk/lib/ucrt/string/wcsset_s.cpp | 19 + sdk/lib/ucrt/string/wcsspn.cpp | 36 + sdk/lib/ucrt/string/wcstok.cpp | 34 + sdk/lib/ucrt/string/wcstok_s.cpp | 83 + sdk/lib/ucrt/string/wcsupr.cpp | 189 ++ sdk/lib/ucrt/string/wcsxfrm.cpp | 135 + sdk/lib/ucrt/string/wmemcpy_s.cpp | 45 + sdk/lib/ucrt/string/wmemmove_s.cpp | 35 + sdk/lib/ucrt/time/asctime.cpp | 197 ++ sdk/lib/ucrt/time/clock.cpp | 95 + sdk/lib/ucrt/time/ctime.cpp | 124 + sdk/lib/ucrt/time/days.cpp | 26 + sdk/lib/ucrt/time/difftime.cpp | 32 + sdk/lib/ucrt/time/ftime.cpp | 105 + sdk/lib/ucrt/time/gmtime.cpp | 204 ++ sdk/lib/ucrt/time/localtime.cpp | 211 ++ sdk/lib/ucrt/time/loctotime.cpp | 117 + sdk/lib/ucrt/time/mktime.cpp | 201 ++ sdk/lib/ucrt/time/strdate.cpp | 84 + sdk/lib/ucrt/time/strftime.cpp | 199 ++ sdk/lib/ucrt/time/strtime.cpp | 88 + sdk/lib/ucrt/time/time.cpp | 102 + sdk/lib/ucrt/time/timeset.cpp | 188 ++ sdk/lib/ucrt/time/tzset.cpp | 712 +++++ sdk/lib/ucrt/time/utime.cpp | 157 ++ sdk/lib/ucrt/time/wcsftime.cpp | 1207 ++++++++ 568 files changed, 115483 insertions(+)
diff --git a/sdk/include/ucrt/assert.h b/sdk/include/ucrt/assert.h new file mode 100644 index 00000000000..be5dbfca7f8 --- /dev/null +++ b/sdk/include/ucrt/assert.h @@ -0,0 +1,50 @@ +// +// assert.h +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Defines the assert macro and related functionality. +// +#if defined _VCRT_BUILD && !defined _ASSERT_OK + #error assert.h not for CRT internal use +#endif + +#include <corecrt.h> + +#pragma warning(push) +#pragma warning(disable: _UCRT_DISABLED_WARNINGS) +_UCRT_DISABLE_CLANG_WARNINGS +_CRT_BEGIN_C_HEADER + +#if _CRT_HAS_C11 + +#define static_assert _Static_assert + +#endif // _CRT_HAS_C11 + +#undef assert + +#ifdef NDEBUG + + #define assert(expression) ((void)0) + +#else + + _ACRTIMP void __cdecl _wassert( + _In_z_ wchar_t const* _Message, + _In_z_ wchar_t const* _File, + _In_ unsigned _Line + ); + + #define assert(expression) (void)( \ + (!!(expression)) || \ + (_wassert(_CRT_WIDE(#expression), _CRT_WIDE(__FILE__), (unsigned)(__LINE__)), 0) \ + ) + +#endif + + + +_CRT_END_C_HEADER +_UCRT_RESTORE_CLANG_WARNINGS +#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/sdk/include/ucrt/complex.h b/sdk/include/ucrt/complex.h new file mode 100644 index 00000000000..72ee07b1c42 --- /dev/null +++ b/sdk/include/ucrt/complex.h @@ -0,0 +1,580 @@ +// +// complex.h +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// The complex math library. +// +#pragma once +#ifndef _COMPLEX +#define _COMPLEX + +#include <corecrt.h> + +#if (_CRT_HAS_CXX17 == 1) && !defined(_CRT_USE_C_COMPLEX_H) +#include <ccomplex> +#else // ^^^^ /std:c++17 ^^^^ // vvvv _CRT_USE_C_COMPLEX_H vvvv + +#pragma warning(push) +#pragma warning(disable: _UCRT_DISABLED_WARNINGS) +_UCRT_DISABLE_CLANG_WARNINGS + +_CRT_BEGIN_C_HEADER + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// Types +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +#ifndef _C_COMPLEX_T + #define _C_COMPLEX_T + typedef struct _C_double_complex + { + double _Val[2]; + } _C_double_complex; + + typedef struct _C_float_complex + { + float _Val[2]; + } _C_float_complex; + + typedef struct _C_ldouble_complex + { + long double _Val[2]; + } _C_ldouble_complex; +#endif + +typedef _C_double_complex _Dcomplex; +typedef _C_float_complex _Fcomplex; +typedef _C_ldouble_complex _Lcomplex; + + + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// Macros +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +#define _DCOMPLEX_(re, im) _Cbuild(re, im) +#define _FCOMPLEX_(re, im) _FCbuild(re, im) +#define _LCOMPLEX_(re, im) _LCbuild(re, im) + +#define _Complex_I _FCbuild(0.0F, 1.0F) +#define I _Complex_I + + + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// Functions +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +_ACRTIMP double __cdecl cabs(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl cacos(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl cacosh(_In_ _Dcomplex _Z); +_ACRTIMP double __cdecl carg(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl casin(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl casinh(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl catan(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl catanh(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl ccos(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl ccosh(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl cexp(_In_ _Dcomplex _Z); +_ACRTIMP double __cdecl cimag(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl clog(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl clog10(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl conj(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl cpow(_In_ _Dcomplex _X, _In_ _Dcomplex _Y); +_ACRTIMP _Dcomplex __cdecl cproj(_In_ _Dcomplex _Z); +_ACRTIMP double __cdecl creal(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl csin(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl csinh(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl csqrt(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl ctan(_In_ _Dcomplex _Z); +_ACRTIMP _Dcomplex __cdecl ctanh(_In_ _Dcomplex _Z); +_ACRTIMP double __cdecl norm(_In_ _Dcomplex _Z); + +_ACRTIMP float __cdecl cabsf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl cacosf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl cacoshf(_In_ _Fcomplex _Z); +_ACRTIMP float __cdecl cargf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl casinf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl casinhf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl catanf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl catanhf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl ccosf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl ccoshf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl cexpf(_In_ _Fcomplex _Z); +_ACRTIMP float __cdecl cimagf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl clogf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl clog10f(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl conjf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl cpowf(_In_ _Fcomplex _X, _In_ _Fcomplex _Y); +_ACRTIMP _Fcomplex __cdecl cprojf(_In_ _Fcomplex _Z); +_ACRTIMP float __cdecl crealf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl csinf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl csinhf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl csqrtf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl ctanf(_In_ _Fcomplex _Z); +_ACRTIMP _Fcomplex __cdecl ctanhf(_In_ _Fcomplex _Z); +_ACRTIMP float __cdecl normf(_In_ _Fcomplex _Z); + +_ACRTIMP long double __cdecl cabsl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl cacosl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl cacoshl(_In_ _Lcomplex _Z); +_ACRTIMP long double __cdecl cargl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl casinl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl casinhl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl catanl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl catanhl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl ccosl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl ccoshl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl cexpl(_In_ _Lcomplex _Z); +_ACRTIMP long double __cdecl cimagl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl clogl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl clog10l(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl conjl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl cpowl(_In_ _Lcomplex _X, _In_ _Lcomplex _Y); +_ACRTIMP _Lcomplex __cdecl cprojl(_In_ _Lcomplex _Z); +_ACRTIMP long double __cdecl creall(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl csinl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl csinhl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl csqrtl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl ctanl(_In_ _Lcomplex _Z); +_ACRTIMP _Lcomplex __cdecl ctanhl(_In_ _Lcomplex _Z); +_ACRTIMP long double __cdecl norml(_In_ _Lcomplex _Z); + +_ACRTIMP _Dcomplex __cdecl _Cbuild(_In_ double _Re, _In_ double _Im); +_ACRTIMP _Dcomplex __cdecl _Cmulcc(_In_ _Dcomplex _X, _In_ _Dcomplex _Y); +_ACRTIMP _Dcomplex __cdecl _Cmulcr(_In_ _Dcomplex _X, _In_ double _Y); + +_ACRTIMP _Fcomplex __cdecl _FCbuild(_In_ float _Re, _In_ float _Im); +_ACRTIMP _Fcomplex __cdecl _FCmulcc(_In_ _Fcomplex _X, _In_ _Fcomplex _Y); +_ACRTIMP _Fcomplex __cdecl _FCmulcr(_In_ _Fcomplex _X, _In_ float _Y); + +_ACRTIMP _Lcomplex __cdecl _LCbuild(_In_ long double _Re, _In_ long double _Im); +_ACRTIMP _Lcomplex __cdecl _LCmulcc(_In_ _Lcomplex _X, _In_ _Lcomplex _Y); +_ACRTIMP _Lcomplex __cdecl _LCmulcr(_In_ _Lcomplex _X, _In_ long double _Y); + + + +#ifdef __cplusplus +extern "C++" +{ + //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + // + // double complex overloads + // + //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + inline _Dcomplex __CRTDECL acos(_In_ _Dcomplex _X) throw() + { + return cacos(_X); + } + + inline _Dcomplex __CRTDECL acosh(_In_ _Dcomplex _X) throw() + { + return cacosh(_X); + } + + inline _Dcomplex __CRTDECL asin(_In_ _Dcomplex _X) throw() + { + return casin(_X); + } + + inline _Dcomplex __CRTDECL asinh(_In_ _Dcomplex _X) throw() + { + return casinh(_X); + } + + inline _Dcomplex __CRTDECL atan(_In_ _Dcomplex _X) throw() + { + return catan(_X); + } + + inline _Dcomplex __CRTDECL atanh(_In_ _Dcomplex _X) throw() + { + return catanh(_X); + } + + inline _Dcomplex __CRTDECL cos(_In_ _Dcomplex _X) throw() + { + return ccos(_X); + } + + inline _Dcomplex __CRTDECL cosh(_In_ _Dcomplex _X) throw() + { + return ccosh(_X); + } + + inline _Dcomplex __CRTDECL proj(_In_ _Dcomplex _X) throw() + { + return cproj(_X); + } + + inline _Dcomplex __CRTDECL exp(_In_ _Dcomplex _X) throw() + { + return cexp(_X); + } + + inline _Dcomplex __CRTDECL log(_In_ _Dcomplex _X) throw() + { + return clog(_X); + } + + inline _Dcomplex __CRTDECL log10(_In_ _Dcomplex _X) throw() + { + return clog10(_X); + } + + inline _Dcomplex __CRTDECL pow(_In_ _Dcomplex _X, _In_ _Dcomplex _Y) throw() + { + return cpow(_X, _Y); + } + + inline _Dcomplex __CRTDECL sin(_In_ _Dcomplex _X) throw() + { + return csin(_X); + } + + inline _Dcomplex __CRTDECL sinh(_In_ _Dcomplex _X) throw() + { + return csinh(_X); + } + + inline _Dcomplex __CRTDECL sqrt(_In_ _Dcomplex _X) throw() + { + return csqrt(_X); + } + + inline _Dcomplex __CRTDECL tan(_In_ _Dcomplex _X) throw() + { + return ctan(_X); + } + + inline _Dcomplex __CRTDECL tanh(_In_ _Dcomplex _X) throw() + { + return ctanh(_X); + } + + inline double __CRTDECL abs(_In_ _Dcomplex _X) throw() + { + return cabs(_X); + } + + inline double __CRTDECL arg(_In_ _Dcomplex _X) throw() + { + return carg(_X); + } + + inline double __CRTDECL imag(_In_ _Dcomplex _X) throw() + { + return cimag(_X); + } + + inline double __CRTDECL real(_In_ _Dcomplex _X) throw() + { + return creal(_X); + } + + + + //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + // + // float complex overloads + // + //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + inline _Fcomplex __CRTDECL acos(_In_ _Fcomplex _X) throw() + { + return cacosf(_X); + } + + inline _Fcomplex __CRTDECL acosh(_In_ _Fcomplex _X) throw() + { + return cacoshf(_X); + } + + inline _Fcomplex __CRTDECL asin(_In_ _Fcomplex _X) throw() + { + return casinf(_X); + } + + inline _Fcomplex __CRTDECL asinh(_In_ _Fcomplex _X) throw() + { + return casinhf(_X); + } + + inline _Fcomplex __CRTDECL atan(_In_ _Fcomplex _X) throw() + { + return catanf(_X); + } + + inline _Fcomplex __CRTDECL atanh(_In_ _Fcomplex _X) throw() + { + return catanhf(_X); + } + + inline _Fcomplex __CRTDECL conj(_In_ _Fcomplex _X) throw() + { + return conjf(_X); + } + + inline _Fcomplex __CRTDECL cos(_In_ _Fcomplex _X) throw() + { + return ccosf(_X); + } + + inline _Fcomplex __CRTDECL cosh(_In_ _Fcomplex _X) throw() + { + return ccoshf(_X); + } + + inline _Fcomplex __CRTDECL cproj(_In_ _Fcomplex _X) throw() + { + return cprojf(_X); + } + + inline _Fcomplex __CRTDECL proj(_In_ _Fcomplex _X) throw() + { + return cprojf(_X); + } + + inline _Fcomplex __CRTDECL exp(_In_ _Fcomplex _X) throw() + { + return cexpf(_X); + } + + inline _Fcomplex __CRTDECL log(_In_ _Fcomplex _X) throw() + { + return clogf(_X); + } + + inline _Fcomplex __CRTDECL log10(_In_ _Fcomplex _X) throw() + { + return clog10f(_X); + } + + inline float __CRTDECL norm(_In_ _Fcomplex _X) throw() + { + return normf(_X); + } + + inline _Fcomplex __CRTDECL pow(_In_ _Fcomplex _X, _In_ _Fcomplex _Y) throw() + { + return cpowf(_X, _Y); + } + + inline _Fcomplex __CRTDECL sin(_In_ _Fcomplex _X) throw() + { + return csinf(_X); + } + + inline _Fcomplex __CRTDECL sinh(_In_ _Fcomplex _X) throw() + { + return csinhf(_X); + } + + inline _Fcomplex __CRTDECL sqrt(_In_ _Fcomplex _X) throw() + { + return csqrtf(_X); + } + + inline _Fcomplex __CRTDECL tan(_In_ _Fcomplex _X) throw() + { + return ctanf(_X); + } + + inline _Fcomplex __CRTDECL tanh(_In_ _Fcomplex _X) throw() + { + return ctanhf(_X); + } + + inline float __CRTDECL abs(_In_ _Fcomplex _X) throw() + { + return cabsf(_X); + } + + inline float __CRTDECL arg(_In_ _Fcomplex _X) throw() + { + return cargf(_X); + } + + inline float __CRTDECL carg(_In_ _Fcomplex _X) throw() + { + return cargf(_X); + } + + inline float __CRTDECL cimag(_In_ _Fcomplex _X) throw() + { + return cimagf(_X); + } + + inline float __CRTDECL creal(_In_ _Fcomplex _X) throw() + { + return crealf(_X); + } + + inline float __CRTDECL imag(_In_ _Fcomplex _X) throw() + { + return cimagf(_X); + } + + inline float __CRTDECL real(_In_ _Fcomplex _X) throw() + { + return crealf(_X); + } + + + + //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + // + // long double complex overloads + // + //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + inline _Lcomplex __CRTDECL acos(_In_ _Lcomplex _X) throw() + { + return cacosl(_X); + } + + inline _Lcomplex __CRTDECL acosh(_In_ _Lcomplex _X) throw() + { + return cacoshl(_X); + } + + inline _Lcomplex __CRTDECL asin(_In_ _Lcomplex _X) throw() + { + return casinl(_X); + } + + inline _Lcomplex __CRTDECL asinh(_In_ _Lcomplex _X) throw() + { + return casinhl(_X); + } + + inline _Lcomplex __CRTDECL atan(_In_ _Lcomplex _X) throw() + { + return catanl(_X); + } + + inline _Lcomplex __CRTDECL atanh(_In_ _Lcomplex _X) throw() + { + return catanhl(_X); + } + + inline _Lcomplex __CRTDECL conj(_In_ _Lcomplex _X) throw() + { + return conjl(_X); + } + + inline _Lcomplex __CRTDECL cos(_In_ _Lcomplex _X) throw() + { + return ccosl(_X); + } + + inline _Lcomplex __CRTDECL cosh(_In_ _Lcomplex _X) throw() + { + return ccoshl(_X); + } + + inline _Lcomplex __CRTDECL cproj(_In_ _Lcomplex _X) throw() + { + return cprojl(_X); + } + + inline _Lcomplex __CRTDECL proj(_In_ _Lcomplex _X) throw() + { + return cprojl(_X); + } + + inline _Lcomplex __CRTDECL exp(_In_ _Lcomplex _X) throw() + { + return cexpl(_X); + } + + inline _Lcomplex __CRTDECL log(_In_ _Lcomplex _X) throw() + { + return clogl(_X); + } + + inline _Lcomplex __CRTDECL log10(_In_ _Lcomplex _X) throw() + { + return clog10l(_X); + } + + inline long double __CRTDECL norm(_In_ _Lcomplex _X) throw() + { + return norml(_X); + } + + inline _Lcomplex __CRTDECL pow(_In_ _Lcomplex _X, _In_ _Lcomplex _Y) throw() + { + return cpowl(_X, _Y); + } + + inline _Lcomplex __CRTDECL sin(_In_ _Lcomplex _X) throw() + { + return csinl(_X); + } + + inline _Lcomplex __CRTDECL sinh(_In_ _Lcomplex _X) throw() + { + return csinhl(_X); + } + + inline _Lcomplex __CRTDECL sqrt(_In_ _Lcomplex _X) throw() + { + return csqrtl(_X); + } + + inline _Lcomplex __CRTDECL tan(_In_ _Lcomplex _X) throw() + { + return ctanl(_X); + } + + inline _Lcomplex __CRTDECL tanh(_In_ _Lcomplex _X) throw() + { + return ctanhl(_X); + } + + inline long double __CRTDECL abs(_In_ _Lcomplex _X) throw() + { + return cabsl(_X); + } + + inline long double __CRTDECL arg(_In_ _Lcomplex _X) throw() + { + return cargl(_X); + } + + inline long double __CRTDECL carg(_In_ _Lcomplex _X) throw() + { + return cargl(_X); + } + + inline long double __CRTDECL cimag(_In_ _Lcomplex _X) throw() + { + return cimagl(_X); + } + + inline long double __CRTDECL creal(_In_ _Lcomplex _X) throw() + { + return creall(_X); + } + + inline long double __CRTDECL imag(_In_ _Lcomplex _X) throw() + { + return cimagl(_X); + } + + inline long double __CRTDECL real(_In_ _Lcomplex _X) throw() + { + return creall(_X); + } + +} // extern "C++" +#endif // __cplusplus + +_CRT_END_C_HEADER +_UCRT_RESTORE_CLANG_WARNINGS +#pragma warning(pop) // _UCRT_DISABLED_WARNINGS +#endif // (_CRT_HAS_CXX17 == 1) && !defined(_CRT_USE_C_COMPLEX_H) +#endif // _COMPLEX diff --git a/sdk/include/ucrt/conio.h b/sdk/include/ucrt/conio.h new file mode 100644 index 00000000000..a0f5e9c192c --- /dev/null +++ b/sdk/include/ucrt/conio.h @@ -0,0 +1,504 @@ +// +// conio.h +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// This file declares the direct console I/O functions. +// +#pragma once +#ifndef _INC_CONIO // include guard for 3rd party interop +#define _INC_CONIO + +#include <corecrt.h> +#include <corecrt_wconio.h> + +#pragma warning(push) +#pragma warning(disable: _UCRT_DISABLED_WARNINGS) +_UCRT_DISABLE_CLANG_WARNINGS + +_CRT_BEGIN_C_HEADER + + _Check_return_wat_ + _Success_(_BufferCount > 0) + _DCRTIMP errno_t __cdecl _cgets_s( + _Out_writes_z_(_BufferCount) char* _Buffer, + _In_ size_t _BufferCount, + _Out_ size_t* _SizeRead + ); + + __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1( + _Success_(return == 0) + errno_t, _cgets_s, + _Out_writes_z_(*_Buffer) char, _Buffer, + _Out_ size_t*, _SizeRead + ) + + _Check_return_opt_ + _DCRTIMP int __cdecl _cputs( + _In_z_ char const* _Buffer + ); + + //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + // + // Narrow Character Formatted Output Functions (Console) + // + //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + _Check_return_opt_ + _DCRTIMP int __cdecl __conio_common_vcprintf( + _In_ unsigned __int64 _Options, + _In_z_ _Printf_format_string_params_(2) char const* _Format, + _In_opt_ _locale_t _Locale, + va_list _ArgList + ); + + _Check_return_opt_ + _DCRTIMP int __cdecl __conio_common_vcprintf_s( + _In_ unsigned __int64 _Options, + _In_z_ _Printf_format_string_params_(2) char const* _Format, + _In_opt_ _locale_t _Locale, + va_list _ArgList + ); + + _Check_return_opt_ + _DCRTIMP int __cdecl __conio_common_vcprintf_p( + _In_ unsigned __int64 _Options, + _In_z_ _Printf_format_string_params_(2) char const* _Format, + _In_opt_ _locale_t _Locale, + va_list _ArgList + ); + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _vcprintf_l( + _In_z_ _Printf_format_string_params_(2) char const* const _Format, + _In_opt_ _locale_t const _Locale, + va_list _ArgList + ) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + return __conio_common_vcprintf( + _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, + _Format, _Locale, _ArgList); + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _vcprintf( + _In_z_ _Printf_format_string_ char const* const _Format, + va_list _ArgList + ) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + return _vcprintf_l(_Format, NULL, _ArgList); + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _vcprintf_s_l( + _In_z_ _Printf_format_string_params_(2) char const* const _Format, + _In_opt_ _locale_t const _Locale, + va_list _ArgList + ) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + return __conio_common_vcprintf_s( + _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, + _Format, _Locale, _ArgList); + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _vcprintf_s( + _In_z_ _Printf_format_string_ char const* const _Format, + va_list _ArgList + ) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + return _vcprintf_s_l(_Format, NULL, _ArgList); + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _vcprintf_p_l( + _In_z_ _Printf_format_string_params_(2) char const* const _Format, + _In_opt_ _locale_t const _Locale, + va_list _ArgList + ) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + return __conio_common_vcprintf_p( + _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, + _Format, _Locale, _ArgList); + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _vcprintf_p( + _In_z_ char const* const _Format, + va_list _ArgList + ) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + return _vcprintf_p_l(_Format, NULL, _ArgList); + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _cprintf_l( + _In_z_ _Printf_format_string_params_(0) char const* const _Format, + _In_opt_ _locale_t const _Locale, + ...) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + int _Result; + va_list _ArgList; + __crt_va_start(_ArgList, _Locale); + _Result = _vcprintf_l(_Format, _Locale, _ArgList); + __crt_va_end(_ArgList); + return _Result; + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _cprintf( + _In_z_ _Printf_format_string_ char const* const _Format, + ...) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + int _Result; + va_list _ArgList; + __crt_va_start(_ArgList, _Format); + _Result = _vcprintf_l(_Format, NULL, _ArgList); + __crt_va_end(_ArgList); + return _Result; + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _cprintf_s_l( + _In_z_ _Printf_format_string_params_(0) char const* const _Format, + _In_opt_ _locale_t const _Locale, + ...) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + int _Result; + va_list _ArgList; + __crt_va_start(_ArgList, _Locale); + _Result = _vcprintf_s_l(_Format, _Locale, _ArgList); + __crt_va_end(_ArgList); + return _Result; + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _cprintf_s( + _In_z_ _Printf_format_string_ char const* const _Format, + ...) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + int _Result; + va_list _ArgList; + __crt_va_start(_ArgList, _Format); + _Result = _vcprintf_s_l(_Format, NULL, _ArgList); + __crt_va_end(_ArgList); + return _Result; + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _cprintf_p_l( + _In_z_ _Printf_format_string_params_(0) char const* const _Format, + _In_opt_ _locale_t const _Locale, + ...) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + int _Result; + va_list _ArgList; + __crt_va_start(_ArgList, _Locale); + _Result = _vcprintf_p_l(_Format, _Locale, _ArgList); + __crt_va_end(_ArgList); + return _Result; + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _cprintf_p( + _In_z_ _Printf_format_string_ char const* const _Format, + ...) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + int _Result; + va_list _ArgList; + __crt_va_start(_ArgList, _Format); + _Result = _vcprintf_p_l(_Format, NULL, _ArgList); + __crt_va_end(_ArgList); + return _Result; + } +#endif + + + //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + // + // Narrow Character Formatted Input Functions (Console) + // + //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + _Check_return_opt_ + _DCRTIMP int __cdecl __conio_common_vcscanf( + _In_ unsigned __int64 _Options, + _In_z_ _Scanf_format_string_params_(2) char const* _Format, + _In_opt_ _locale_t _Locale, + va_list _ArgList + ); + + _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_vcscanf_s_l) + _CRT_STDIO_INLINE int __CRTDECL _vcscanf_l( + _In_z_ _Scanf_format_string_params_(2) char const* const _Format, + _In_opt_ _locale_t const _Locale, + va_list _ArgList + ) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + return __conio_common_vcscanf( + _CRT_INTERNAL_LOCAL_SCANF_OPTIONS, + _Format, _Locale, _ArgList); + } +#endif + + _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_vcscanf_s) + _CRT_STDIO_INLINE int __CRTDECL _vcscanf( + _In_z_ _Scanf_format_string_params_(1) char const* const _Format, + va_list _ArgList + ) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + return _vcscanf_l(_Format, NULL, _ArgList); + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _vcscanf_s_l( + _In_z_ _Scanf_format_string_params_(2) char const* const _Format, + _In_opt_ _locale_t const _Locale, + va_list _ArgList + ) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + return __conio_common_vcscanf( + _CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT, + _Format, _Locale, _ArgList); + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _vcscanf_s( + _In_z_ _Scanf_format_string_params_(1) char const* const _Format, + va_list _ArgList + ) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + return _vcscanf_s_l(_Format, NULL, _ArgList); + } +#endif + + _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_cscanf_s_l) + _CRT_STDIO_INLINE int __CRTDECL _cscanf_l( + _In_z_ _Scanf_format_string_params_(0) char const* const _Format, + _In_opt_ _locale_t const _Locale, + ...) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + int _Result; + va_list _ArgList; + __crt_va_start(_ArgList, _Locale); + + _Result = _vcscanf_l(_Format, _Locale, _ArgList); + + __crt_va_end(_ArgList); + return _Result; + } +#endif + + _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_cscanf_s) + _CRT_STDIO_INLINE int __CRTDECL _cscanf( + _In_z_ _Scanf_format_string_ char const* const _Format, + ...) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + int _Result; + va_list _ArgList; + __crt_va_start(_ArgList, _Format); + + _Result = _vcscanf_l(_Format, NULL, _ArgList); + + __crt_va_end(_ArgList); + return _Result; + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _cscanf_s_l( + _In_z_ _Scanf_format_string_params_(0) char const* const _Format, + _In_opt_ _locale_t const _Locale, + ...) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + int _Result; + va_list _ArgList; + __crt_va_start(_ArgList, _Locale); + _Result = _vcscanf_s_l(_Format, _Locale, _ArgList); + __crt_va_end(_ArgList); + return _Result; + } +#endif + + _Check_return_opt_ + _CRT_STDIO_INLINE int __CRTDECL _cscanf_s( + _In_z_ _Scanf_format_string_ char const* const _Format, + ...) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + int _Result; + va_list _ArgList; + __crt_va_start(_ArgList, _Format); + _Result = _vcscanf_s_l(_Format, NULL, _ArgList); + __crt_va_end(_ArgList); + return _Result; + } +#endif + + + _DCRTIMP int __cdecl _kbhit(void); + + _Check_return_ _DCRTIMP int __cdecl _getch(void); + _Check_return_ _DCRTIMP int __cdecl _getche(void); + _Check_return_opt_ _DCRTIMP int __cdecl _putch (_In_ int _Ch); + _Check_return_opt_ _DCRTIMP int __cdecl _ungetch(_In_ int _Ch); + + _Check_return_ _DCRTIMP int __cdecl _getch_nolock (void); + _Check_return_ _DCRTIMP int __cdecl _getche_nolock (void); + _Check_return_opt_ _DCRTIMP int __cdecl _putch_nolock (_In_ int _Ch); + _Check_return_opt_ _DCRTIMP int __cdecl _ungetch_nolock(_In_ int _Ch); + + #if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES + + // Suppress double-deprecation warnings: + #pragma warning(push) + #pragma warning(disable: 4141) + + _Success_(return != 0) + _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_cgets) _CRT_INSECURE_DEPRECATE(_cgets_s) + _DCRTIMP char* __cdecl cgets( + _At_(&_Buffer[0], _In_reads_(1)) + _At_(&_Buffer[1], _Out_writes_(1)) + _At_(&_Buffer[2], _Post_z_ _Out_writes_to_(_Buffer[0], _Buffer[1])) + char* _Buffer + ); + + #pragma warning(pop) + + _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_cputs) + _DCRTIMP int __cdecl cputs( + _In_z_ char const* _String + ); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_getch) + _DCRTIMP int __cdecl getch(void); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_getche) + _DCRTIMP int __cdecl getche(void); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_kbhit) + _DCRTIMP int __cdecl kbhit(void); + + _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_putch) + _DCRTIMP int __cdecl putch( + _In_ int _Ch + ); + + _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_ungetch) + _DCRTIMP int __cdecl ungetch( + _In_ int _Ch + ); + + _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_cprintf) + _CRT_STDIO_INLINE int __CRTDECL cprintf( + _In_z_ _Printf_format_string_ char const* const _Format, + ...) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + int _Result; + va_list _ArgList; + __crt_va_start(_ArgList, _Format); + _Result = _vcprintf_l(_Format, NULL, _ArgList); + __crt_va_end(_ArgList); + return _Result; + } +#endif + + _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_cscanf) + _CRT_STDIO_INLINE int __CRTDECL cscanf( + _In_z_ _Scanf_format_string_ char const* const _Format, + ...) +#if defined _NO_CRT_STDIO_INLINE +; +#else + { + int _Result; + va_list _ArgList; + __crt_va_start(_ArgList, _Format); + + _Result = _vcscanf_l(_Format, NULL, _ArgList); + + __crt_va_end(_ArgList); + return _Result; + } +#endif + + #endif // _CRT_INTERNAL_NONSTDC_NAMES + +_CRT_END_C_HEADER + +_UCRT_RESTORE_CLANG_WARNINGS +#pragma warning(pop) // _UCRT_DISABLED_WARNINGS +#endif // _INC_CONIO diff --git a/sdk/include/ucrt/corecrt.h b/sdk/include/ucrt/corecrt.h new file mode 100644 index 00000000000..b89f0a94c22 --- /dev/null +++ b/sdk/include/ucrt/corecrt.h @@ -0,0 +1,2075 @@ +// +// corecrt.h +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Declarations used throughout the CoreCRT library. +// +#pragma once + +#include <vcruntime.h> + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// Windows API Partitioning and ARM Desktop Support +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +#ifndef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP + #ifdef WINAPI_FAMILY + #include <winapifamily.h> + #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) + #define _CRT_USE_WINAPI_FAMILY_DESKTOP_APP + #else + #ifdef WINAPI_FAMILY_PHONE_APP + #if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP + #define _CRT_USE_WINAPI_FAMILY_PHONE_APP + #endif + #endif + + #ifdef WINAPI_FAMILY_GAMES + #if WINAPI_FAMILY == WINAPI_FAMILY_GAMES + #define _CRT_USE_WINAPI_FAMILY_GAMES + #endif + #endif + #endif + #else + #define _CRT_USE_WINAPI_FAMILY_DESKTOP_APP + #endif +#endif + +#ifndef _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE + #define _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE 1 +#endif + +#ifndef _CRT_BUILD_DESKTOP_APP + #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP + #define _CRT_BUILD_DESKTOP_APP 1 + #else + #define _CRT_BUILD_DESKTOP_APP 0 + #endif +#endif + +// Verify that the ARM Desktop SDK is available when building an ARM Desktop app +#ifdef _M_ARM + #if _CRT_BUILD_DESKTOP_APP && !_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE + #error Compiling Desktop applications for the ARM platform is not supported. + #endif +#endif + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// Warning Suppression +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +// C4412: function signature contains type '_locale_t'; +// C++ objects are unsafe to pass between pure code and mixed or native. (/Wall) +#ifndef _UCRT_DISABLED_WARNING_4412 + #ifdef _M_CEE_PURE + #define _UCRT_DISABLED_WARNING_4412 4412 + #else + #define _UCRT_DISABLED_WARNING_4412 + #endif +#endif + +// Use _UCRT_EXTRA_DISABLED_WARNINGS to add additional warning suppressions to UCRT headers. +#ifndef _UCRT_EXTRA_DISABLED_WARNINGS + #define _UCRT_EXTRA_DISABLED_WARNINGS +#endif + +// C4324: structure was padded due to __declspec(align()) (/W4) +// C4514: unreferenced inline function has been removed (/Wall) +// C4574: 'MACRO' is defined to be '0': did you mean to use '#if MACRO'? (/Wall) +// C4668: '__cplusplus' is not defined as a preprocessor macro (/Wall) +// C4710: function not inlined (/Wall) +// C4793: 'function' is compiled as native code (/Wall and /W1 under /clr:pure) +// C4820: padding after data member (/Wall) +// C4995: name was marked #pragma deprecated +// C4996: __declspec(deprecated) +// C28719: Banned API, use a more robust and secure replacement. +// C28726: Banned or deprecated API, use a more robust and secure replacement. +// C28727: Banned API. +#ifndef _UCRT_DISABLED_WARNINGS + #define _UCRT_DISABLED_WARNINGS 4324 _UCRT_DISABLED_WARNING_4412 4514 4574 4710 4793 4820 4995 4996 28719 28726 28727 _UCRT_EXTRA_DISABLED_WARNINGS +#endif + +#ifndef _UCRT_DISABLE_CLANG_WARNINGS + #ifdef __clang__ + // warning: declspec(deprecated) [-Wdeprecated-declarations] + // warning: __declspec attribute 'allocator' is not supported [-Wignored-attributes] + // warning: '#pragma optimize' is not supported [-Wignored-pragma-optimize] + // warning: unknown pragma ignored [-Wunknown-pragmas] + #define _UCRT_DISABLE_CLANG_WARNINGS \ + _Pragma("clang diagnostic push") \ + _Pragma("clang diagnostic ignored "-Wdeprecated-declarations"") \ + _Pragma("clang diagnostic ignored "-Wignored-attributes"") \ + _Pragma("clang diagnostic ignored "-Wignored-pragma-optimize"") \ + _Pragma("clang diagnostic ignored "-Wunknown-pragmas"") + #else // __clang__ + #define _UCRT_DISABLE_CLANG_WARNINGS + #endif // __clang__ +#endif // _UCRT_DISABLE_CLANG_WARNINGS + +#ifndef _UCRT_RESTORE_CLANG_WARNINGS + #ifdef __clang__ + #define _UCRT_RESTORE_CLANG_WARNINGS _Pragma("clang diagnostic pop") + #else // __clang__ + #define _UCRT_RESTORE_CLANG_WARNINGS + #endif // __clang__ +#endif // _UCRT_RESTORE_CLANG_WARNINGS + +#pragma warning(push) +#pragma warning(disable: _UCRT_DISABLED_WARNINGS) +_UCRT_DISABLE_CLANG_WARNINGS + +_CRT_BEGIN_C_HEADER + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// Annotation Macros +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +#ifndef _ACRTIMP + #if defined _CRTIMP && !defined _VCRT_DEFINED_CRTIMP + #define _ACRTIMP _CRTIMP + #elif !defined _CORECRT_BUILD && defined _DLL + #define _ACRTIMP __declspec(dllimport) + #else + #define _ACRTIMP + #endif +#endif + +// If you need the ability to remove __declspec(import) from an API, to support static replacement, +// declare the API using _ACRTIMP_ALT instead of _ACRTIMP. +#ifndef _ACRTIMP_ALT + #define _ACRTIMP_ALT _ACRTIMP +#endif + +#ifndef _DCRTIMP + #if defined _CRTIMP && !defined _VCRT_DEFINED_CRTIMP + #define _DCRTIMP _CRTIMP + #elif !defined _CORECRT_BUILD && defined _DLL + #define _DCRTIMP __declspec(dllimport) + #else + #define _DCRTIMP + #endif +#endif + +#if defined _CRT_SUPPRESS_RESTRICT || defined _CORECRT_BUILD + #define _CRTRESTRICT +#else + #define _CRTRESTRICT __declspec(restrict) +#endif + +#if defined _MSC_VER && _MSC_VER >= 1900 && !defined _CORECRT_BUILD + #define _CRTALLOCATOR __declspec(allocator) +#else + #define _CRTALLOCATOR +#endif + +#if defined _M_CEE && defined _M_X64 + // This is only needed when managed code is calling the native APIs, + // targeting the 64-bit runtime. + #define _CRT_JIT_INTRINSIC __declspec(jitintrinsic) +#else + #define _CRT_JIT_INTRINSIC +#endif + +// __declspec(guard(overflow)) enabled by /sdl compiler switch for CRT allocators +#ifdef _GUARDOVERFLOW_CRT_ALLOCATORS + #define _CRT_GUARDOVERFLOW __declspec(guard(overflow)) +#else + #define _CRT_GUARDOVERFLOW +#endif + +#if defined _DLL && (defined _M_HYBRID || defined _M_ARM64EC) && (defined _CORECRT_BUILD || defined _VCRT_BUILD) + #define _CRT_HYBRIDPATCHABLE __declspec(hybrid_patchable) +#else + #define _CRT_HYBRIDPATCHABLE +#endif + +// The CLR requires code calling other SecurityCritical code or using SecurityCritical types +// to be marked as SecurityCritical. +// _CRT_SECURITYCRITICAL_ATTRIBUTE covers this for internal function definitions. +// _CRT_INLINE_PURE_SECURITYCRITICAL_ATTRIBUTE is for inline pure functions defined in the header. +// This is clr:pure-only because for mixed mode we compile inline functions as native. +#ifdef _M_CEE_PURE + #define _CRT_INLINE_PURE_SECURITYCRITICAL_ATTRIBUTE [System::Security::SecurityCritical] +#else + #define _CRT_INLINE_PURE_SECURITYCRITICAL_ATTRIBUTE +#endif + +#ifndef _CONST_RETURN + #ifdef __cplusplus + #define _CONST_RETURN const + #define _CRT_CONST_CORRECT_OVERLOADS + #else + #define _CONST_RETURN + #endif +#endif + +#define _WConst_return _CONST_RETURN // For backwards compatibility + +#ifndef _CRT_ALIGN + #ifdef __midl + #define _CRT_ALIGN(x) + #else + #define _CRT_ALIGN(x) __declspec(align(x)) + #endif +#endif + +#if defined _PREFAST_ && defined _CA_SHOULD_CHECK_RETURN + #define _Check_return_opt_ _Check_return_ +#else + #define _Check_return_opt_ +#endif + +#if defined _PREFAST_ && defined _CA_SHOULD_CHECK_RETURN_WER + #define _Check_return_wat_ _Check_return_ +#else + #define _Check_return_wat_ +#endif + +#if !defined __midl && !defined MIDL_PASS && defined _PREFAST_ + #define __crt_typefix(ctype) __declspec("SAL_typefix(" _CRT_STRINGIZE(ctype) ")") +#else + #define __crt_typefix(ctype) +#endif + +#ifndef _CRT_NOEXCEPT + #ifdef __cplusplus + #define _CRT_NOEXCEPT noexcept + #else + #define _CRT_NOEXCEPT + #endif +#endif + + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// Miscellaneous Stuff +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +#ifdef __cplusplus +extern "C++" +{ + template<bool _Enable, typename _Ty> + struct _CrtEnableIf; + + template<typename _Ty> + struct _CrtEnableIf<true, _Ty> + { + typedef _Ty _Type; + }; +} +#endif + +#if defined __cplusplus + typedef bool __crt_bool; +#elif defined __midl + // MIDL understands neither bool nor _Bool. Use char as a best-fit + // replacement (the differences won't matter in practice). + typedef char __crt_bool; +#else + typedef _Bool __crt_bool; +#endif + +#define _ARGMAX 100 +#define _TRUNCATE ((size_t)-1) +#define _CRT_INT_MAX 2147483647 +#define _CRT_SIZE_MAX ((size_t)-1) + +#define __FILEW__ _CRT_WIDE(__FILE__) +#define __FUNCTIONW__ _CRT_WIDE(__FUNCTION__) + +#ifdef __cplusplus + #ifndef _STATIC_ASSERT + #define _STATIC_ASSERT(expr) static_assert((expr), #expr) + #endif +#else + #ifndef _STATIC_ASSERT + #ifdef __clang__ + #define _STATIC_ASSERT(expr) _Static_assert((expr), #expr) + #else + #define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr) != 0] + #endif + #endif +#endif + +#ifndef NULL + #ifdef __cplusplus + #define NULL 0 + #else + #define NULL ((void *)0) + #endif +#endif + +// CRT headers are included into some kinds of source files where only data type +// definitions and macro definitions are required but function declarations and +// inline function definitions are not. These files include assembly files, IDL +// files, and resource files. The tools that process these files often have a +// limited ability to process C and C++ code. The _CRT_FUNCTIONS_REQUIRED macro +// is defined to 1 when we are compiling a file that actually needs functions to +// be declared (and defined, where applicable), and to 0 when we are compiling a +// file that does not. This allows us to suppress declarations and definitions +// that are not compilable with the aforementioned tools. +#if !defined _CRT_FUNCTIONS_REQUIRED + #if defined __assembler || defined __midl || defined RC_INVOKED + #define _CRT_FUNCTIONS_REQUIRED 0 + #else + #define _CRT_FUNCTIONS_REQUIRED 1 + #endif +#endif + +#if !defined _NO_INLINING && !_CRT_FUNCTIONS_REQUIRED + #define _NO_INLINING // Suppress <tchar.h> inlines +#endif + +#ifndef _CRT_UNUSED + #define _CRT_UNUSED(x) (void)x +#endif + +#ifndef _CRT_HAS_CXX17 + #ifdef _MSVC_LANG + #if _MSVC_LANG > 201402 + #define _CRT_HAS_CXX17 1 + #else /* _MSVC_LANG > 201402 */ + #define _CRT_HAS_CXX17 0 + #endif /* _MSVC_LANG > 201402 */ + #else /* _MSVC_LANG */ + #if defined __cplusplus && __cplusplus > 201402 + #define _CRT_HAS_CXX17 1 + #else /* __cplusplus > 201402 */ + #define _CRT_HAS_CXX17 0 + #endif /* __cplusplus > 201402 */ + #endif /* _MSVC_LANG */ +#endif /* _CRT_HAS_CXX17 */ + +#ifndef _CRT_HAS_C11 + #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L + #define _CRT_HAS_C11 1 + #else /* defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L */ + #define _CRT_HAS_C11 0 + #endif /* defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L */ +#endif /* _CRT_HAS_C11 */ + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// Invalid Parameter Handler +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +#ifdef _DEBUG + _ACRTIMP void __cdecl _invalid_parameter( + _In_opt_z_ wchar_t const*, + _In_opt_z_ wchar_t const*, + _In_opt_z_ wchar_t const*, + _In_ unsigned int, + _In_ uintptr_t + ); +#endif + +_ACRTIMP_ALT void __cdecl _invalid_parameter_noinfo(void); +_ACRTIMP __declspec(noreturn) void __cdecl _invalid_parameter_noinfo_noreturn(void); + +__declspec(noreturn) +_ACRTIMP void __cdecl _invoke_watson( + _In_opt_z_ wchar_t const* _Expression, + _In_opt_z_ wchar_t const* _FunctionName, + _In_opt_z_ wchar_t const* _FileName, + _In_ unsigned int _LineNo, + _In_ uintptr_t _Reserved); + +#ifndef _CRT_SECURE_INVALID_PARAMETER + #ifdef _DEBUG + #define _CRT_SECURE_INVALID_PARAMETER(expr) \ + ::_invalid_parameter(_CRT_WIDE(#expr), __FUNCTIONW__, __FILEW__, __LINE__, 0) + #else + // By default, _CRT_SECURE_INVALID_PARAMETER in retail invokes + // _invalid_parameter_noinfo_noreturn(), which is marked + // __declspec(noreturn) and does not return control to the application. + // Even if _set_invalid_parameter_handler() is used to set a new invalid + // parameter handler which does return control to the application, + // _invalid_parameter_noinfo_noreturn() will terminate the application + // and invoke Watson. You can overwrite the definition of + // _CRT_SECURE_INVALID_PARAMETER if you need. + // + // _CRT_SECURE_INVALID_PARAMETER is used in the Standard C++ Libraries + // and the SafeInt library. + #define _CRT_SECURE_INVALID_PARAMETER(expr) \ + ::_invalid_parameter_noinfo_noreturn() + #endif +#endif + + + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// Deprecation and Warnings +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +#define _CRT_WARNING_MESSAGE(NUMBER, MESSAGE) \ + __FILE__ "(" _CRT_STRINGIZE(__LINE__) "): warning " NUMBER ": " MESSAGE + +#if ( defined _CRT_DECLARE_NONSTDC_NAMES && _CRT_DECLARE_NONSTDC_NAMES) || \ + (!defined _CRT_DECLARE_NONSTDC_NAMES && !__STDC__ ) + #define _CRT_INTERNAL_NONSTDC_NAMES 1 +#else + #define _CRT_INTERNAL_NONSTDC_NAMES 0 +#endif + +#if defined _CRT_NONSTDC_NO_DEPRECATE && !defined _CRT_NONSTDC_NO_WARNINGS + #define _CRT_NONSTDC_NO_WARNINGS +#endif + +#ifndef _CRT_NONSTDC_DEPRECATE + #ifdef _CRT_NONSTDC_NO_WARNINGS + #define _CRT_NONSTDC_DEPRECATE(_NewName) + #else + #define _CRT_NONSTDC_DEPRECATE(_NewName) _CRT_DEPRECATE_TEXT( \ + "The POSIX name for this item is deprecated. Instead, use the ISO C " \ + "and C++ conformant name: " #_NewName ". See online help for details.") + #endif +#endif + + + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// Managed CRT Support +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +#ifndef _PGLOBAL + #ifdef _M_CEE + #ifdef __cplusplus_cli + #define _PGLOBAL __declspec(process) + #else + #define _PGLOBAL + #endif + #else + #define _PGLOBAL + #endif +#endif + +#ifndef _AGLOBAL + #ifdef _M_CEE + #define _AGLOBAL __declspec(appdomain) + #else + #define _AGLOBAL + #endif +#endif + +#if defined _M_CEE && !defined _M_CEE_PURE + #define _M_CEE_MIXED +#endif + + + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// SecureCRT Configuration +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +#if defined _CRTBLD || defined _CORECRT_BUILD || defined _VCRT_BUILD + // Disable C++ overloads internally: + #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 0 + #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 0 + #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 0 +#endif + +#if !_CRT_FUNCTIONS_REQUIRED + // If we don't require function declarations at all, we need not define the + // overloads (MIDL and RC do not need the C++ overloads). + #undef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES + #undef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT + #undef _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES + #undef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY + #undef _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY + + #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 0 + #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 0 + #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 0 + #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY 0 + #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY 0 +#endif + +#define __STDC_SECURE_LIB__ 200411L +#define __GOT_SECURE_LIB__ __STDC_SECURE_LIB__ // For backwards compatibility + +#ifndef __STDC_WANT_SECURE_LIB__ + #define __STDC_WANT_SECURE_LIB__ 1 +#endif + +#if !__STDC_WANT_SECURE_LIB__ && !defined _CRT_SECURE_NO_WARNINGS + #define _CRT_SECURE_NO_WARNINGS +#endif + +#ifndef RC_INVOKED + #if defined _CRT_SECURE_NO_DEPRECATE_GLOBALS && !defined _CRT_SECURE_NO_WARNINGS_GLOBALS + #define _CRT_SECURE_NO_WARNINGS_GLOBALS + #endif +#endif + +#ifndef _CRT_INSECURE_DEPRECATE_GLOBALS + #ifdef RC_INVOKED + #define _CRT_INSECURE_DEPRECATE_GLOBALS(replacement) + #else + #ifdef _CRT_SECURE_NO_WARNINGS_GLOBALS + #define _CRT_INSECURE_DEPRECATE_GLOBALS(replacement) + #else + #define _CRT_INSECURE_DEPRECATE_GLOBALS(replacement) _CRT_INSECURE_DEPRECATE(replacement) + #endif + #endif +#endif + +#if defined _CRT_MANAGED_HEAP_NO_DEPRECATE && !defined _CRT_MANAGED_HEAP_NO_WARNINGS + #define _CRT_MANAGED_HEAP_NO_WARNINGS +#endif + +#define _SECURECRT_FILL_BUFFER_PATTERN 0xFE + +#if defined _CRT_OBSOLETE_NO_DEPRECATE && !defined _CRT_OBSOLETE_NO_WARNINGS + #define _CRT_OBSOLETE_NO_WARNINGS +#endif + +#ifndef _CRT_OBSOLETE + #ifdef _CRT_OBSOLETE_NO_WARNINGS + #define _CRT_OBSOLETE(_NewItem) + #else + #define _CRT_OBSOLETE(_NewItem) _CRT_DEPRECATE_TEXT( \ + "This function or variable has been superceded by newer library " \ + "or operating system functionality. Consider using " #_NewItem " " \ + "instead. See online help for details.") + #endif +#endif + +#ifndef RC_INVOKED + #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES + #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 0 + #else + #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES + #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0 + #endif + #endif + + #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT + // _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT is ignored if + // _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES is set to 0 + #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 0 + #else + #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT + #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0 + #endif + #endif + + #ifndef _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES + #if __STDC_WANT_SECURE_LIB__ + #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 1 + #else + #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 0 + #endif + #else + #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES + #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0 + #endif + #endif + + #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY + #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY 0 + #else + #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY + #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0 + #endif + #endif + + #ifndef _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY + #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY 0 + #else + #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY + #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0 + #endif + #endif +#endif + +#ifndef _CRT_SECURE_CPP_NOTHROW + #define _CRT_SECURE_CPP_NOTHROW throw() +#endif + + + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// Basic Types +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +typedef int errno_t; +typedef unsigned short wint_t; +typedef unsigned short wctype_t; +typedef long __time32_t; +typedef __int64 __time64_t; + +typedef struct __crt_locale_data_public +{ + unsigned short const* _locale_pctype; + _Field_range_(1, 2) int _locale_mb_cur_max; + unsigned int _locale_lc_codepage; +} __crt_locale_data_public; + +typedef struct __crt_locale_pointers +{ + struct __crt_locale_data* locinfo; + struct __crt_multibyte_data* mbcinfo; +} __crt_locale_pointers; + +typedef __crt_locale_pointers* _locale_t; + +typedef struct _Mbstatet +{ // state of a multibyte translation + unsigned long _Wchar; + unsigned short _Byte, _State; +} _Mbstatet; + +typedef _Mbstatet mbstate_t; + +#if defined _USE_32BIT_TIME_T && defined _WIN64 + #error You cannot use 32-bit time_t (_USE_32BIT_TIME_T) with _WIN64 +#endif + +#if defined _VCRT_BUILD || defined _CORECRT_BUILD + #define _CRT_NO_TIME_T +#endif + +#ifndef _CRT_NO_TIME_T + #ifdef _USE_32BIT_TIME_T + typedef __time32_t time_t; + #else + typedef __time64_t time_t; + #endif +#endif + +// Indicate that these common types are defined +#ifndef _TIME_T_DEFINED + #define _TIME_T_DEFINED +#endif + +#if __STDC_WANT_SECURE_LIB__ + typedef size_t rsize_t; +#endif + + + + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// C++ Secure Overload Generation Macros +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +#ifndef RC_INVOKED + #if defined __cplusplus && _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES + + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(_ReturnType, _FuncName, _DstType, _Dst) \ + extern "C++" \ + { \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \ + { \ + return _FuncName(_Dst, _Size); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1) \ + extern "C++" \ + { \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + return _FuncName(_Dst, _Size, _TArg1); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + extern "C++" \ + { \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + return _FuncName(_Dst, _Size, _TArg1, _TArg2); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + extern "C++" \ + { \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + return _FuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \ + extern "C++" \ + { \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \ + { \ + return _FuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3, _TArg4); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1) \ + extern "C++" \ + { \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + return _FuncName(_HArg1, _Dst, _Size, _TArg1); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + extern "C++" \ + { \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + return _FuncName(_HArg1, _Dst, _Size, _TArg1, _TArg2); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + extern "C++" \ + { \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + return _FuncName(_HArg1, _Dst, _Size, _TArg1, _TArg2, _TArg3); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_2_0(_ReturnType, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _DstType, _Dst) \ + extern "C++" \ + { \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, _DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \ + { \ + return _FuncName(_HArg1, _HArg2, _Dst, _Size); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1) \ + extern "C++" \ + { \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \ + { \ + va_list _ArgList; \ + __crt_va_start(_ArgList, _TArg1); \ + return _VFuncName(_Dst, _Size, _TArg1, _ArgList); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + extern "C++" \ + { \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \ + { \ + va_list _ArgList; \ + __crt_va_start(_ArgList, _TArg2); \ + return _VFuncName(_Dst, _Size, _TArg1, _TArg2, _ArgList); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_SPLITPATH(_ReturnType, _FuncName, _DstType, _Src) \ + extern "C++" \ + { \ + template <size_t _DriveSize, size_t _DirSize, size_t _NameSize, size_t _ExtSize> \ + inline \ + _ReturnType __CRTDECL _FuncName( \ + _In_z_ _DstType const* _Src, \ + _Post_z_ _DstType (&_Drive)[_DriveSize], \ + _Post_z_ _DstType (&_Dir)[_DirSize], \ + _Post_z_ _DstType (&_Name)[_NameSize], \ + _Post_z_ _DstType (&_Ext)[_ExtSize] \ + ) _CRT_SECURE_CPP_NOTHROW \ + { \ + return _FuncName(_Src, _Drive, _DriveSize, _Dir, _DirSize, _Name, _NameSize, _Ext, _ExtSize); \ + } \ + } + + #else // ^^^ _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES ^^^ // vvv !_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES vvv // + + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(_ReturnType, _FuncName, _DstType, _Dst) + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1) + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1) + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_2_0(_ReturnType, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _DstType, _Dst) + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1) + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_SPLITPATH(_ReturnType, _FuncName, _DstType, _Src) + + #endif // !_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES +#endif + + + +#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _Dst) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _FuncName##_s, _VFuncName, _VFuncName##_s, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _VFuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) + + + +#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \ + __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _Dst) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _DstType, _Dst, _TType1, _TArg1) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \ + __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \ + __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, __cdecl, _FuncName, _FuncName##_s, _VFuncName, _VFuncName##_s, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + +#define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) + + + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// C++ Standard Overload Generation Macros +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +#ifndef RC_INVOKED + #if defined __cplusplus && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES + + #define __RETURN_POLICY_SAME(_FunctionCall, _Dst) return (_FunctionCall) + #define __RETURN_POLICY_DST(_FunctionCall, _Dst) return ((_FunctionCall) == 0 ? _Dst : 0) + #define __RETURN_POLICY_VOID(_FunctionCall, _Dst) (_FunctionCall); return + #define __EMPTY_DECLSPEC + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \ + __inline \ + _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst) \ + { \ + _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst); \ + return _FuncName(_Dst); \ + } \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_T &_Dst) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(const _T &_Dst) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_Dst); \ + } \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, _Size), _Dst); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1]) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, 1), _Dst); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \ + __inline \ + _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst) \ + { \ + _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst); \ + return _FuncName(_Dst); \ + } \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ + _ReturnType __CRTDECL _FuncName(_T &_Dst) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ + _ReturnType __CRTDECL _FuncName(const _T &_Dst) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ + _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_Dst); \ + } \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \ + { \ + size_t _SizeRead = 0; \ + errno_t _Err = _FuncName##_s(_Dst + 2, (_Size - 2) < ((size_t)_Dst[0]) ? (_Size - 2) : ((size_t)_Dst[0]), &_SizeRead); \ + _Dst[1] = (_DstType)(_SizeRead); \ + return (_Err == 0 ? _Dst + 2 : 0); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ + _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1]) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName((_DstType *)_Dst); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ + _ReturnType __CRTDECL _FuncName<2>(_DstType (&_Dst)[2]) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName((_DstType *)_Dst); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + __inline \ + _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1) \ + { \ + _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1); \ + return _FuncName(_Dst, _TArg1); \ + } \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_Dst, _TArg1); \ + } \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1), _Dst); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1), _Dst); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __inline \ + _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); \ + return _FuncName(_Dst, _TArg1, _TArg2); \ + } \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_Dst, _TArg1, _TArg2); \ + } \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2), _Dst); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2), _Dst); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + __inline \ + _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) \ + { \ + _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); \ + return _FuncName(_Dst, _TArg1, _TArg2, _TArg3); \ + } \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_Dst, _TArg1, _TArg2, _TArg3); \ + } \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3), _Dst); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2, _TArg3), _Dst); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \ + __inline \ + _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) \ + { \ + _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4); \ + return _FuncName(_Dst, _TArg1, _TArg2, _TArg3, _TArg4); \ + } \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3, _TArg4); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3, _TArg4); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_Dst, _TArg1, _TArg2, _TArg3, _TArg4); \ + } \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3, _TArg4), _Dst); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2, _TArg3, _TArg4), _Dst); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + __inline \ + _ReturnType __CRTDECL __insecure_##_FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1) \ + { \ + _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1); \ + return _FuncName(_HArg1, _Dst, _TArg1); \ + } \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_HArg1, static_cast<_DstType *>(_Dst), _TArg1); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, const _T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_HArg1, static_cast<_DstType *>(_Dst), _TArg1); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType * &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_HArg1, _Dst, _TArg1); \ + } \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_HArg1, _Dst, _Size, _TArg1), _Dst); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName<1>(_HType1 _HArg1, _DstType (&_Dst)[1], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_HArg1, _Dst, 1, _TArg1), _Dst); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \ + __inline \ + _ReturnType __CRTDECL __insecure_##_FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst) \ + { \ + _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst); \ + return _FuncName(_HArg1, _HArg2, _Dst); \ + } \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, _T &_Dst) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_HArg1, _HArg2, static_cast<_DstType *>(_Dst)); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, const _T &_Dst) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_HArg1, _HArg2, static_cast<_DstType *>(_Dst)); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType * &_Dst) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_HArg1, _HArg2, _Dst); \ + } \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, _DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_HArg1, _HArg2, _Dst, _Size), _Dst); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName<1>(_HType1 _HArg1, _HType2 _HArg2, _DstType (&_Dst)[1]) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_HArg1, _HArg2, _Dst, 1), _Dst); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + __inline \ + _ReturnType __CRTDECL __insecure_##_VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _ArgList) \ + { \ + _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _ArgList); \ + return _VFuncName(_Dst, _TArg1, _ArgList); \ + } \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \ + { \ + va_list _ArgList; \ + __crt_va_start(_ArgList, _TArg1); \ + return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _ArgList); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \ + { \ + va_list _ArgList; \ + __crt_va_start(_ArgList, _TArg1); \ + return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _ArgList); \ + } \ + \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \ + { \ + va_list _ArgList; \ + __crt_va_start(_ArgList, _TArg1); \ + return __insecure_##_VFuncName(_Dst, _TArg1, _ArgList); \ + } \ + \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \ + { \ + va_list _ArgList; \ + __crt_va_start(_ArgList, _TArg1); \ + _ReturnPolicy(_SecureVFuncName(_Dst, _Size, _TArg1, _ArgList), _Dst); \ + } \ + \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \ + { \ + va_list _ArgList; \ + __crt_va_start(_ArgList, _TArg1); \ + _ReturnPolicy(_SecureVFuncName(_Dst, 1, _TArg1, _ArgList), _Dst); \ + } \ + \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ + _ReturnType __CRTDECL _VFuncName(_T &_Dst, _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _ArgList); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ + _ReturnType __CRTDECL _VFuncName(const _T &_Dst, _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _ArgList); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ + _ReturnType __CRTDECL _VFuncName(_SalAttributeDst _DstType *&_Dst, _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_VFuncName(_Dst, _TArg1, _ArgList); \ + } \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _VFuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureVFuncName(_Dst, _Size, _TArg1, _ArgList), _Dst); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ + _ReturnType __CRTDECL _VFuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureVFuncName(_Dst, 1, _TArg1, _ArgList), _Dst); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SecureVFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __inline \ + _ReturnType __CRTDECL __insecure_##_VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) \ + { \ + _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList); \ + return _VFuncName(_Dst, _TArg1, _TArg2, _ArgList); \ + } \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ + _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \ + { \ + va_list _ArgList; \ + __crt_va_start(_ArgList, _TArg2); \ + return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _ArgList); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ + _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \ + { \ + va_list _ArgList; \ + __crt_va_start(_ArgList, _TArg2); \ + return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _ArgList); \ + } \ + \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ + _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \ + { \ + va_list _ArgList; \ + __crt_va_start(_ArgList, _TArg2); \ + return __insecure_##_VFuncName(_Dst, _TArg1, _TArg2, _ArgList); \ + } \ + \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \ + { \ + va_list _ArgList; \ + __crt_va_start(_ArgList, _TArg2); \ + _ReturnPolicy(_SecureVFuncName(_Dst, _Size, _TArg1, _TArg2, _ArgList), _Dst); \ + } \ + \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) \ + _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \ + { \ + va_list _ArgList; \ + __crt_va_start(_ArgList, _TArg2); \ + _ReturnPolicy(_SecureVFuncName(_Dst, 1, _TArg1, _TArg2, _ArgList), _Dst); \ + } \ + \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ + _ReturnType __CRTDECL _VFuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _ArgList); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ + _ReturnType __CRTDECL _VFuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _ArgList); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ + _ReturnType __CRTDECL _VFuncName(_SalAttributeDst _DstType *&_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_VFuncName(_Dst, _TArg1, _TArg2, _ArgList); \ + } \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _VFuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureVFuncName(_Dst, _Size, _TArg1, _TArg2, _ArgList), _Dst); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \ + _ReturnType __CRTDECL _VFuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureVFuncName(_Dst, 1, _TArg1, _TArg2, _ArgList), _Dst); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __inline \ + size_t __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2) \ + { \ + _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); \ + return _FuncName(_Dst, _TArg1, _TArg2); \ + } \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + size_t __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + size_t __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + size_t __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_Dst, _TArg1, _TArg2); \ + } \ + template <size_t _Size> \ + inline \ + size_t __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + size_t _Ret = 0; \ + _SecureFuncName(&_Ret, _Dst, _Size, _TArg1, _TArg2); \ + return (_Ret > 0 ? (_Ret - 1) : _Ret); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + size_t __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + size_t _Ret = 0; \ + _SecureFuncName(&_Ret, _Dst, 1, _TArg1, _TArg2); \ + return (_Ret > 0 ? (_Ret - 1) : _Ret); \ + } \ + } + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + __inline \ + size_t __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) \ + { \ + _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); \ + return _FuncName(_Dst, _TArg1, _TArg2, _TArg3); \ + } \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + size_t __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + size_t __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + size_t __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_Dst, _TArg1, _TArg2, _TArg3); \ + } \ + template <size_t _Size> \ + inline \ + size_t __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + size_t _Ret = 0; \ + _SecureFuncName(&_Ret, _Dst, _Size, _TArg1, _TArg2, _TArg3); \ + return (_Ret > 0 ? (_Ret - 1) : _Ret); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + size_t __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + size_t _Ret = 0; \ + _SecureFuncName(&_Ret, _Dst, 1, _TArg1, _TArg2, _TArg3); \ + return (_Ret > 0 ? (_Ret - 1) : _Ret); \ + } \ + } + + #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \ + __inline \ + _ReturnType __CRTDECL __insecure_##_FuncName(_DstType *_Dst) + + #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_T &_Dst) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(const _T &_Dst) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_DstType * &_Dst) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_Dst); \ + } \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, _Size), _Dst); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1]) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, 1), _Dst); \ + } \ + } + + #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \ + __inline \ + _ReturnType __CRTDECL __insecure_##_FuncName(_DstType *_Dst, _TType1 _TArg1) + + #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_DstType * &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_Dst, _TArg1); \ + } \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1), _Dst); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1), _Dst); \ + } \ + } + + #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __inline \ + _ReturnType __CRTDECL __insecure_##_FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2) + + #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_Dst, _TArg1, _TArg2); \ + } \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2), _Dst); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2), _Dst); \ + } \ + } + + #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + __inline \ + _ReturnType __CRTDECL __insecure_##_FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) + + #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + extern "C++" \ + { \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \ + } \ + template <typename _T> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + return __insecure_##_FuncName(_Dst, _TArg1, _TArg2, _TArg3); \ + } \ + template <size_t _Size> \ + inline \ + _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3), _Dst); \ + } \ + template <> \ + inline \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \ + { \ + _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2, _TArg3), _Dst); \ + } \ + } + + #if _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4) + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, __cdecl, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _VFuncName##_s, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) + + + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \ + __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType _DstType, _Dst) + + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \ + __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) + + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \ + __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType _DstType, _Dst, _TType1, _TArg1) + + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \ + __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) + + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) + + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) + + #else // ^^^ _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT ^^^ // vvv _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT vvv // + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_GETS(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _DstType, _Dst) \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_DstType *_Dst); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName,_VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, ...); \ + _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _Args); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \ + _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType __cdecl _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \ + _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); + + + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + __inline \ + _ReturnType __CRTDECL _FuncName(_DstType *_Dst) + + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) + + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + __inline \ + _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1) + + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) + + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + __inline \ + _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2) + + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + __inline \ + _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) + + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) + + #endif // !_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT + + #else // ^^^ _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES ^^^ // vvv !_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES vvv // + + #define __RETURN_POLICY_SAME(_FunctionCall) + #define __RETURN_POLICY_DST(_FunctionCall) + #define __RETURN_POLICY_VOID(_FunctionCall) + #define __EMPTY_DECLSPEC + + #if _CRT_FUNCTIONS_REQUIRED + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, ...); \ + _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _Args); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SecureVFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \ + _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_GETS(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _DstType, _Dst) \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_DstType *_Dst); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, ...); \ + _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _Args); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \ + _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType __cdecl _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \ + _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); + + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); + + + #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + __inline \ + _ReturnType __CRTDECL _FuncName(_DstType *_Dst) + + #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) + + #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + __inline \ + _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1) + + #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) + + #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + __inline \ + _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2) + + #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + + #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + __inline \ + _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) + + #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) + + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + __inline \ + _ReturnType __CRTDECL _FuncName(_DstType *_Dst) + + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) + + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + __inline \ + _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1) + + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) + + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + __inline \ + _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2) + + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) + + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \ + _CRT_INSECURE_DEPRECATE(_SecureFuncName) \ + __inline \ + _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) + + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) + + #else // ^^^ _CRT_FUNCTIONS_REQUIRED ^^^ // vvv !_CRT_FUNCTIONS_REQUIRED vvv // + + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_GETS(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(...) + #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(...) + #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(...) + #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(...) + #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(...) + #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(...) + #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(...) + #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(...) + #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(...) + #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(...) + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(...) + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(...) + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(...) + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(...) + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(...) + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(...) + #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(...) + #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(...) + + #endif // !_CRT_FUNCTIONS_REQUIRED + #endif // !_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES +#endif + +_CRT_END_C_HEADER + +_UCRT_RESTORE_CLANG_WARNINGS +#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/sdk/include/ucrt/corecrt_io.h b/sdk/include/ucrt/corecrt_io.h new file mode 100644 index 00000000000..5beefbc8812 --- /dev/null +++ b/sdk/include/ucrt/corecrt_io.h @@ -0,0 +1,572 @@ +// +// corecrt_io.h +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// This file declares the low-level I/O and file handling functionality. These +// declarations are split out to support the Windows build. +// +#pragma once + +#include <corecrt_share.h> +#include <corecrt_wio.h> + +#pragma warning(push) +#pragma warning(disable: _UCRT_DISABLED_WARNINGS) +_UCRT_DISABLE_CLANG_WARNINGS + +_CRT_BEGIN_C_HEADER + + + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// Types +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +#ifdef _USE_32BIT_TIME_T + #define _finddata_t _finddata32_t + #define _finddatai64_t _finddata32i64_t +#else + #define _finddata_t _finddata64i32_t + #define _finddatai64_t __finddata64_t +#endif + +struct _finddata32_t +{ + unsigned attrib; + __time32_t time_create; // -1 for FAT file systems + __time32_t time_access; // -1 for FAT file systems + __time32_t time_write; + _fsize_t size; + char name[260]; +}; + +struct _finddata32i64_t +{ + unsigned attrib; + __time32_t time_create; // -1 for FAT file systems + __time32_t time_access; // -1 for FAT file systems + __time32_t time_write; + __int64 size; + char name[260]; +}; + +struct _finddata64i32_t +{ + unsigned attrib; + __time64_t time_create; // -1 for FAT file systems + __time64_t time_access; // -1 for FAT file systems + __time64_t time_write; + _fsize_t size; + char name[260]; +}; + +struct __finddata64_t +{ + unsigned attrib; + __time64_t time_create; // -1 for FAT file systems + __time64_t time_access; // -1 for FAT file systems + __time64_t time_write; + __int64 size; + char name[260]; +}; + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// Macros +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// File attribute constants for the _findfirst() family of functions +#define _A_NORMAL 0x00 // Normal file - No read/write restrictions +#define _A_RDONLY 0x01 // Read only file +#define _A_HIDDEN 0x02 // Hidden file +#define _A_SYSTEM 0x04 // System file +#define _A_SUBDIR 0x10 // Subdirectory +#define _A_ARCH 0x20 // Archive file + + + +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +// +// Functions +// +//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +#ifdef _USE_32BIT_TIME_T + #define _findfirst _findfirst32 + #define _findnext _findnext32 + #define _findfirsti64 _findfirst32i64 + #define _findnexti64 _findnext32i64 +#else + #define _findfirst _findfirst64i32 + #define _findnext _findnext64i32 + #define _findfirsti64 _findfirst64 + #define _findnexti64 _findnext64 +#endif + +#if _CRT_FUNCTIONS_REQUIRED + + _Check_return_ + _ACRTIMP int __cdecl _access( + _In_z_ char const* _FileName, + _In_ int _AccessMode + ); + + _Check_return_wat_ + _ACRTIMP errno_t __cdecl _access_s( + _In_z_ char const* _FileName, + _In_ int _AccessMode + ); + + _Check_return_ + _ACRTIMP int __cdecl _chmod( + _In_z_ char const* _FileName, + _In_ int _Mode + ); + + _Check_return_ + _ACRTIMP int __cdecl _chsize( + _In_ int _FileHandle, + _In_ long _Size + ); + + _Check_return_wat_ + _ACRTIMP errno_t __cdecl _chsize_s( + _In_ int _FileHandle, + _In_ __int64 _Size + ); + + _Check_return_opt_ + _ACRTIMP int __cdecl _close( + _In_ int _FileHandle + ); + + _Check_return_opt_ + _ACRTIMP int __cdecl _commit( + _In_ int _FileHandle + ); + + _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) + _ACRTIMP int __cdecl _creat( + _In_z_ char const* _FileName, + _In_ int _PermissionMode + ); + + _Check_return_ + _ACRTIMP int __cdecl _dup( + _In_ int _FileHandle + ); + + _Check_return_ + _ACRTIMP int __cdecl _dup2( + _In_ int _FileHandleSrc, + _In_ int _FileHandleDst + ); + + _Check_return_ + _ACRTIMP int __cdecl _eof( + _In_ int _FileHandle + ); + + _Check_return_ + _ACRTIMP long __cdecl _filelength( + _In_ int _FileHandle + ); + + _Success_(return != -1) + _Check_return_ + _ACRTIMP intptr_t __cdecl _findfirst32( + _In_z_ char const* _FileName, + _Out_ struct _finddata32_t* _FindData + ); + + _Success_(return != -1) + _Check_return_ + _ACRTIMP int __cdecl _findnext32( + _In_ intptr_t _FindHandle, + _Out_ struct _finddata32_t* _FindData + ); + + _Check_return_opt_ + _ACRTIMP int __cdecl _findclose( + _In_ intptr_t _FindHandle + ); + + _ACRTIMP intptr_t __cdecl _get_osfhandle( + _In_ int _FileHandle + ); + + _Check_return_ + _ACRTIMP int __cdecl _isatty( + _In_ int _FileHandle + ); + + _ACRTIMP int __cdecl _locking( + _In_ int _FileHandle, + _In_ int _LockMode, + _In_ long _NumOfBytes + ); + + _Check_return_opt_ + _ACRTIMP long __cdecl _lseek( + _In_ int _FileHandle, + _In_ long _Offset, + _In_ int _Origin + ); + + _Success_(return == 0) + _Check_return_wat_ + _ACRTIMP errno_t __cdecl _mktemp_s( + _Inout_updates_z_(_Size) char* _TemplateName, + _In_ size_t _Size + ); + + __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0( + errno_t, _mktemp_s, + _Prepost_z_ char, _TemplateName + ) + + _Success_(return != 0) + _Check_return_ __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0( + char *, __RETURN_POLICY_DST, _ACRTIMP, _mktemp, + _Inout_z_, char, _TemplateName + ) + + _ACRTIMP int __cdecl _open_osfhandle( + _In_ intptr_t _OSFileHandle, + _In_ int _Flags + ); + + #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP + _Success_(return != -1) + _Check_return_ + _DCRTIMP int __cdecl _pipe( + _Out_writes_(2) int* _PtHandles, + _In_ unsigned int _PipeSize, + _In_ int _TextMode + ); + #endif + + _Success_(return != -1) + _Check_return_ + _ACRTIMP int __cdecl _read( + _In_ int _FileHandle, + _Out_writes_bytes_(_MaxCharCount) void* _DstBuf, + _In_ unsigned int _MaxCharCount + ); + + _ACRTIMP int __cdecl remove( + _In_z_ char const* _FileName + ); + + _Check_return_ + _ACRTIMP int __cdecl rename( + _In_z_ char const* _OldFilename, + _In_z_ char const* _NewFilename + ); + + _ACRTIMP int __cdecl _unlink( + _In_z_ char const* _FileName + ); + + _Check_return_ + _ACRTIMP int __cdecl _setmode( + _In_ int _FileHandle, + _In_ int _Mode + ); + + _Check_return_ + _ACRTIMP long __cdecl _tell( + _In_ int _FileHandle + ); + + _CRT_INSECURE_DEPRECATE(_umask_s) + _ACRTIMP int __cdecl _umask( + _In_ int _Mode + ); + + _Check_return_wat_ + _ACRTIMP errno_t __cdecl _umask_s( + _In_ int _NewMode, + _Out_ int* _OldMode + ); + + _ACRTIMP int __cdecl _write( + _In_ int _FileHandle, + _In_reads_bytes_(_MaxCharCount) void const* _Buf, + _In_ unsigned int _MaxCharCount + ); + + _Check_return_ + _ACRTIMP __int64 __cdecl _filelengthi64( + _In_ int _FileHandle + ); + + _Success_(return != -1) + _Check_return_ + _ACRTIMP intptr_t __cdecl _findfirst32i64( + _In_z_ char const* _FileName, + _Out_ struct _finddata32i64_t* _FindData + ); + + _Success_(return != -1) + _Check_return_ + _ACRTIMP intptr_t __cdecl _findfirst64i32( + _In_z_ char const* _FileName, + _Out_ struct _finddata64i32_t* _FindData + ); + + _Success_(return != -1) + _Check_return_ + _ACRTIMP intptr_t __cdecl _findfirst64( + _In_z_ char const* _FileName, + _Out_ struct __finddata64_t* _FindData + ); + + _Success_(return != -1) + _Check_return_ + _ACRTIMP int __cdecl _findnext32i64( + _In_ intptr_t _FindHandle, + _Out_ struct _finddata32i64_t* _FindData + ); + + _Success_(return != -1) + _Check_return_ + _ACRTIMP int __cdecl _findnext64i32( + _In_ intptr_t _FindHandle, + _Out_ struct _finddata64i32_t* _FindData + ); + + _Success_(return != -1) + _Check_return_ + _ACRTIMP int __cdecl _findnext64( + _In_ intptr_t _FindHandle, + _Out_ struct __finddata64_t* _FindData + ); + + _Check_return_opt_ + _ACRTIMP __int64 __cdecl _lseeki64( + _In_ int _FileHandle, + _In_ __int64 _Offset, + _In_ int _Origin + ); + + _Check_return_ + _ACRTIMP __int64 __cdecl _telli64( + _In_ int _FileHandle + ); + + _Check_return_wat_ + _ACRTIMP errno_t __cdecl _sopen_s( + _Out_ int* _FileHandle, + _In_z_ char const* _FileName, + _In_ int _OpenFlag, + _In_ int _ShareFlag, + _In_ int _PermissionMode + ); + + _Check_return_ + _ACRTIMP errno_t __cdecl _sopen_s_nolock( + _Out_ int* _FileHandle, + _In_z_ char const* _FileName, + _In_ int _OpenFlag, + _In_ int _ShareFlag, + _In_ int _PermissionMode + ); + + _ACRTIMP errno_t __cdecl _sopen_dispatch( + _In_z_ char const* _FileName, + _In_ int _OFlag, + _In_ int _ShFlag, + _In_ int _PMode, + _Out_ int* _PFileHandle, + _In_ int _BSecure + ); + + + + #ifdef __cplusplus + + // These function do not validate pmode; use _sopen_s instead. + extern "C++" _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) + inline int __CRTDECL _open( + _In_z_ char const* const _FileName, + _In_ int const _OFlag, + _In_ int const _PMode = 0 + ) + { + int _FileHandle; + // Last parameter passed as 0 because we don't want to validate pmode from _open + errno_t const _Result = _sopen_dispatch(_FileName, _OFlag, _SH_DENYNO, _PMode, &_FileHandle, 0); + return _Result ? -1 : _FileHandle; + } + + extern "C++" _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) + inline int __CRTDECL _sopen( + _In_z_ char const* const _FileName, + _In_ int const _OFlag, + _In_ int const _ShFlag, + _In_ int const _PMode = 0 + ) + { + int _FileHandle; + // Last parameter passed as 0 because we don't want to validate pmode from _sopen + errno_t const _Result = _sopen_dispatch(_FileName, _OFlag, _ShFlag, _PMode, &_FileHandle, 0); + return _Result ? -1 : _FileHandle; + } + + #else + + _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) + _ACRTIMP int __cdecl _open( + _In_z_ char const* _FileName, + _In_ int _OpenFlag, + ...); + + _Check_return_ _CRT_INSECURE_DEPRECATE(_sopen_s) + _ACRTIMP int __cdecl _sopen( + _In_z_ char const* _FileName, + _In_ int _OpenFlag, + _In_ int _ShareFlag, + ...); + + #endif + + + + #if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES + // Suppress warnings about double deprecation + #pragma warning(push) + #pragma warning(disable: 4141) + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_access) + _ACRTIMP int __cdecl access( + _In_z_ char const* _FileName, + _In_ int _AccessMode + ); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_chmod) + _ACRTIMP int __cdecl chmod( + _In_z_ char const* _FileName, + _In_ int _AccessMode + ); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_chsize) + _ACRTIMP int __cdecl chsize( + _In_ int _FileHandle, + _In_ long _Size + ); + + _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_close) + _ACRTIMP int __cdecl close( + _In_ int _FileHandle + ); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_creat) _CRT_INSECURE_DEPRECATE(_sopen_s) + _ACRTIMP int __cdecl creat( + _In_z_ char const* _FileName, + _In_ int _PermissionMode + ); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_dup) + _ACRTIMP int __cdecl dup( + _In_ int _FileHandle + ); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_dup2) + _ACRTIMP int __cdecl dup2( + _In_ int _FileHandleSrc, + _In_ int _FileHandleDst + ); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_eof) + _ACRTIMP int __cdecl eof( + _In_ int _FileHandle + ); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_filelength) + _ACRTIMP long __cdecl filelength( + _In_ int _FileHandle + ); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_isatty) + _ACRTIMP int __cdecl isatty( + _In_ int _FileHandle + ); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_locking) + _ACRTIMP int __cdecl locking( + _In_ int _FileHandle, + _In_ int _LockMode, + _In_ long _NumOfBytes + ); + + _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_lseek) + _ACRTIMP long __cdecl lseek( + _In_ int _FileHandle, + _In_ long _Offset, + _In_ int _Origin + ); + + _Success_(return != 0) + _CRT_NONSTDC_DEPRECATE(_mktemp) _CRT_INSECURE_DEPRECATE(_mktemp_s) + _ACRTIMP char * __cdecl mktemp( + _Inout_z_ char* _TemplateName + ); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_open) _CRT_INSECURE_DEPRECATE(_sopen_s) + _ACRTIMP int __cdecl open( + _In_z_ char const* _FileName, + _In_ int _OpenFlag, + ...); + + _Success_(return != -1) + _CRT_NONSTDC_DEPRECATE(_read) + _ACRTIMP int __cdecl read( + _In_ int _FileHandle, + _Out_writes_bytes_(_MaxCharCount) void* _DstBuf, + _In_ unsigned int _MaxCharCount + ); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_setmode) + _ACRTIMP int __cdecl setmode( + _In_ int _FileHandle, + _In_ int _Mode + ); + + _CRT_NONSTDC_DEPRECATE(_sopen) _CRT_INSECURE_DEPRECATE(_sopen_s) + _ACRTIMP int __cdecl sopen( + _In_ char const* _FileName, + _In_ int _OpenFlag, + _In_ int _ShareFlag, + ...); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_tell) + _ACRTIMP long __cdecl tell( + _In_ int _FileHandle + ); + + _CRT_NONSTDC_DEPRECATE(_umask) _CRT_INSECURE_DEPRECATE(_umask_s) + _ACRTIMP int __cdecl umask( + _In_ int _Mode + ); + + _CRT_NONSTDC_DEPRECATE(_unlink) + _ACRTIMP int __cdecl unlink( + _In_z_ char const* _FileName + ); + + _Check_return_ _CRT_NONSTDC_DEPRECATE(_write) + _ACRTIMP int __cdecl write( + _In_ int _FileHandle, + _In_reads_bytes_(_MaxCharCount) void const* _Buf, + _In_ unsigned int _MaxCharCount + ); + + #pragma warning(pop) + #endif // _CRT_INTERNAL_NONSTDC_NAMES +#endif // _CRT_FUNCTIONS_REQUIRED + +_CRT_END_C_HEADER +_UCRT_RESTORE_CLANG_WARNINGS +#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/sdk/include/ucrt/corecrt_malloc.h b/sdk/include/ucrt/corecrt_malloc.h new file mode 100644 index 00000000000..b6d90bdf975 --- /dev/null +++ b/sdk/include/ucrt/corecrt_malloc.h @@ -0,0 +1,234 @@ +// +// corecrt_malloc.h +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// The memory allocation library. These pieces of the allocation library are +// shared by both <stdlib.h> and <malloc.h>. +// +#pragma once + +#include <corecrt.h> + +#pragma warning(push) +#pragma warning(disable: _UCRT_DISABLED_WARNINGS) +_UCRT_DISABLE_CLANG_WARNINGS + +_CRT_BEGIN_C_HEADER + + + +#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC + #pragma push_macro("_aligned_free") + #pragma push_macro("_aligned_malloc") + #pragma push_macro("_aligned_msize") + #pragma push_macro("_aligned_offset_malloc") + #pragma push_macro("_aligned_offset_realloc") + #pragma push_macro("_aligned_offset_recalloc") + #pragma push_macro("_aligned_realloc") + #pragma push_macro("_aligned_recalloc") + #pragma push_macro("_expand") + #pragma push_macro("_freea") + #pragma push_macro("_msize") + #pragma push_macro("_recalloc") + #pragma push_macro("calloc") + #pragma push_macro("free") + #pragma push_macro("malloc") + #pragma push_macro("realloc") + + #undef _aligned_free + #undef _aligned_malloc + #undef _aligned_msize + #undef _aligned_offset_malloc + #undef _aligned_offset_realloc + #undef _aligned_offset_recalloc + #undef _aligned_realloc + #undef _aligned_recalloc + #undef _expand + #undef _freea + #undef _msize + #undef _recalloc + #undef calloc + #undef free + #undef malloc + #undef realloc +#endif + +_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Count * _Size) +_ACRTIMP _CRTALLOCATOR _CRTRESTRICT +void* __cdecl _calloc_base( + _In_ size_t _Count, + _In_ size_t _Size + ); + +_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Count * _Size) +_ACRTIMP _CRT_JIT_INTRINSIC _CRTALLOCATOR _CRTRESTRICT _CRT_HYBRIDPATCHABLE +void* __cdecl calloc( + _In_ _CRT_GUARDOVERFLOW size_t _Count, + _In_ _CRT_GUARDOVERFLOW size_t _Size + ); + +_Check_return_ +_ACRTIMP int __cdecl _callnewh( + _In_ size_t _Size + ); + +_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) +_ACRTIMP _CRTALLOCATOR _CRT_HYBRIDPATCHABLE +void* __cdecl _expand( + _Pre_notnull_ void* _Block, + _In_ _CRT_GUARDOVERFLOW size_t _Size + ); + +_ACRTIMP +void __cdecl _free_base( + _Pre_maybenull_ _Post_invalid_ void* _Block + ); + +_ACRTIMP _CRT_HYBRIDPATCHABLE +void __cdecl free( + _Pre_maybenull_ _Post_invalid_ void* _Block + ); + +_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) +_ACRTIMP _CRTALLOCATOR _CRTRESTRICT +void* __cdecl _malloc_base( + _In_ size_t _Size + ); + +_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) +_ACRTIMP _CRTALLOCATOR _CRT_JIT_INTRINSIC _CRTRESTRICT _CRT_HYBRIDPATCHABLE +void* __cdecl malloc( + _In_ _CRT_GUARDOVERFLOW size_t _Size + ); + +_Check_return_ +_ACRTIMP +size_t __cdecl _msize_base( + _Pre_notnull_ void* _Block + ) _CRT_NOEXCEPT; + +_Check_return_ +_ACRTIMP _CRT_HYBRIDPATCHABLE +size_t __cdecl _msize( + _Pre_notnull_ void* _Block + ); + +_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) +_ACRTIMP _CRTALLOCATOR _CRTRESTRICT +void* __cdecl _realloc_base( + _Pre_maybenull_ _Post_invalid_ void* _Block, + _In_ size_t _Size + ); + +_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) +_ACRTIMP _CRTALLOCATOR _CRTRESTRICT _CRT_HYBRIDPATCHABLE +void* __cdecl realloc( + _Pre_maybenull_ _Post_invalid_ void* _Block, + _In_ _CRT_GUARDOVERFLOW size_t _Size + ); + +_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Count * _Size) +_ACRTIMP _CRTALLOCATOR _CRTRESTRICT +void* __cdecl _recalloc_base( + _Pre_maybenull_ _Post_invalid_ void* _Block, + _In_ size_t _Count, + _In_ size_t _Size + ); + +_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Count * _Size) +_ACRTIMP _CRTALLOCATOR _CRTRESTRICT +void* __cdecl _recalloc( + _Pre_maybenull_ _Post_invalid_ void* _Block, + _In_ _CRT_GUARDOVERFLOW size_t _Count, + _In_ _CRT_GUARDOVERFLOW size_t _Size + ); + +_ACRTIMP +void __cdecl _aligned_free( + _Pre_maybenull_ _Post_invalid_ void* _Block + ); + +_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) +_ACRTIMP _CRTALLOCATOR _CRTRESTRICT +void* __cdecl _aligned_malloc( + _In_ _CRT_GUARDOVERFLOW size_t _Size, + _In_ size_t _Alignment + ); + +_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) +_ACRTIMP _CRTALLOCATOR _CRTRESTRICT +void* __cdecl _aligned_offset_malloc( + _In_ _CRT_GUARDOVERFLOW size_t _Size, + _In_ size_t _Alignment, + _In_ size_t _Offset + ); + +_Check_return_ +_ACRTIMP +size_t __cdecl _aligned_msize( + _Pre_notnull_ void* _Block, + _In_ size_t _Alignment, + _In_ size_t _Offset + ); + +_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) +_ACRTIMP _CRTALLOCATOR _CRTRESTRICT +void* __cdecl _aligned_offset_realloc( + _Pre_maybenull_ _Post_invalid_ void* _Block, + _In_ _CRT_GUARDOVERFLOW size_t _Size, + _In_ size_t _Alignment, + _In_ size_t _Offset + ); + +_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Count * _Size) +_ACRTIMP _CRTALLOCATOR _CRTRESTRICT +void* __cdecl _aligned_offset_recalloc( + _Pre_maybenull_ _Post_invalid_ void* _Block, + _In_ _CRT_GUARDOVERFLOW size_t _Count, + _In_ _CRT_GUARDOVERFLOW size_t _Size, + _In_ size_t _Alignment, + _In_ size_t _Offset + ); + +_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size) +_ACRTIMP _CRTALLOCATOR _CRTRESTRICT +void* __cdecl _aligned_realloc( + _Pre_maybenull_ _Post_invalid_ void* _Block, + _In_ _CRT_GUARDOVERFLOW size_t _Size, + _In_ size_t _Alignment + ); + +_Success_(return != 0) _Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Count * _Size) +_ACRTIMP _CRTALLOCATOR _CRTRESTRICT +void* __cdecl _aligned_recalloc( + _Pre_maybenull_ _Post_invalid_ void* _Block, + _In_ _CRT_GUARDOVERFLOW size_t _Count, + _In_ _CRT_GUARDOVERFLOW size_t _Size, + _In_ size_t _Alignment + ); + +#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC + #pragma pop_macro("realloc") + #pragma pop_macro("malloc") + #pragma pop_macro("free") + #pragma pop_macro("calloc") + #pragma pop_macro("_recalloc") + #pragma pop_macro("_msize") + #pragma pop_macro("_freea") + #pragma pop_macro("_expand") + #pragma pop_macro("_aligned_recalloc") + #pragma pop_macro("_aligned_realloc") + #pragma pop_macro("_aligned_offset_recalloc") + #pragma pop_macro("_aligned_offset_realloc") + #pragma pop_macro("_aligned_offset_malloc") + #pragma pop_macro("_aligned_msize") + #pragma pop_macro("_aligned_malloc") + #pragma pop_macro("_aligned_free") +#endif + + + +_CRT_END_C_HEADER +_UCRT_RESTORE_CLANG_WARNINGS +#pragma warning(pop) // _UCRT_DISABLED_WARNINGS diff --git a/sdk/include/ucrt/corecrt_math.h b/sdk/include/ucrt/corecrt_math.h new file mode 100644 index 00000000000..fdfe1f02e66 --- /dev/null +++ b/sdk/include/ucrt/corecrt_math.h @@ -0,0 +1,998 @@ +// +// corecrt_math.h +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// The majority of the C Standard Library <math.h> functionality. +// +#pragma once +#ifndef _INC_MATH // include guard for 3rd party interop +#define _INC_MATH + +#include <corecrt.h> + +#pragma warning(push) +#pragma warning(disable: _UCRT_DISABLED_WARNINGS) +_UCRT_DISABLE_CLANG_WARNINGS + +_CRT_BEGIN_C_HEADER + +#ifndef __assembler + // Definition of the _exception struct, which is passed to the matherr function + // when a floating point exception is detected: + struct _exception + { + int type; // exception type - see below + char* name; // name of function where error occurred + double arg1; // first argument to function + double arg2; // second argument (if any) to function + double retval; // value to be returned by function + }; + + // Definition of the _complex struct to be used by those who use the complex + // functions and want type checking. + #ifndef _COMPLEX_DEFINED + #define _COMPLEX_DEFINED + + struct _complex + { + double x, y; // real and imaginary parts + }; + + #if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES && !defined __cplusplus + // Non-ANSI name for compatibility + #define complex _complex + #endif + #endif +#endif // __assembler + + + +// On x86, when not using /arch:SSE2 or greater, floating point operations +// are performed using the x87 instruction set and FLT_EVAL_METHOD is 2. +// (When /fp:fast is used, floating point operations may be consistent, so +// we use the default types.) +#if defined _M_IX86 && _M_IX86_FP < 2 && !defined _M_FP_FAST + typedef long double float_t; + typedef long double double_t; +#else + typedef float float_t; + typedef double double_t; +#endif + + + +// Constant definitions for the exception type passed in the _exception struct +#define _DOMAIN 1 // argument domain error +#define _SING 2 // argument singularity +#define _OVERFLOW 3 // overflow range error +#define _UNDERFLOW 4 // underflow range error +#define _TLOSS 5 // total loss of precision +#define _PLOSS 6 // partial loss of precision + +// Definitions of _HUGE and HUGE_VAL - respectively the XENIX and ANSI names +// for a value returned in case of error by a number of the floating point +// math routines. +#ifndef __assembler + #ifndef _M_CEE_PURE + extern double const _HUGE; + #else + double const _HUGE = System::Double::PositiveInfinity; + #endif +#endif + +#ifndef _HUGE_ENUF + #define _HUGE_ENUF 1e+300 // _HUGE_ENUF*_HUGE_ENUF must overflow +#endif + +#define INFINITY ((float)(_HUGE_ENUF * _HUGE_ENUF)) +#define HUGE_VAL ((double)INFINITY) +#define HUGE_VALF ((float)INFINITY) +#define HUGE_VALL ((long double)INFINITY) +#ifndef _UCRT_NEGATIVE_NAN +// This operation creates a negative NAN adding a - to make it positive +#define NAN (-(float)(INFINITY * 0.0F)) +#else +// Keep this for backwards compatibility +#define NAN ((float)(INFINITY * 0.0F)) +#endif + +#define _DENORM (-2) +#define _FINITE (-1) +#define _INFCODE 1 +#define _NANCODE 2 + +#define FP_INFINITE _INFCODE +#define FP_NAN _NANCODE +#define FP_NORMAL _FINITE +#define FP_SUBNORMAL _DENORM +#define FP_ZERO 0 + +#define _C2 1 // 0 if not 2's complement +#define FP_ILOGB0 (-0x7fffffff - _C2) +#define FP_ILOGBNAN 0x7fffffff + +#define MATH_ERRNO 1 +#define MATH_ERREXCEPT 2 +#define math_errhandling (MATH_ERRNO | MATH_ERREXCEPT) + +// Values for use as arguments to the _fperrraise function +#define _FE_DIVBYZERO 0x04 +#define _FE_INEXACT 0x20 +#define _FE_INVALID 0x01 +#define _FE_OVERFLOW 0x08 +#define _FE_UNDERFLOW 0x10 + +#define _D0_C 3 // little-endian, small long doubles +#define _D1_C 2 +#define _D2_C 1 +#define _D3_C 0 + +#define _DBIAS 0x3fe +#define _DOFF 4 + +#define _F0_C 1 // little-endian +#define _F1_C 0 + +#define _FBIAS 0x7e +#define _FOFF 7 +#define _FRND 1 + +#define _L0_C 3 // little-endian, 64-bit long doubles +#define _L1_C 2 +#define _L2_C 1 +#define _L3_C 0 + +#define _LBIAS 0x3fe +#define _LOFF 4 + +// IEEE 754 double properties +#define _DFRAC ((unsigned short)((1 << _DOFF) - 1)) +#define _DMASK ((unsigned short)(0x7fff & ~_DFRAC)) +#define _DMAX ((unsigned short)((1 << (15 - _DOFF)) - 1)) +#define _DSIGN ((unsigned short)0x8000) + +// IEEE 754 float properties +#define _FFRAC ((unsigned short)((1 << _FOFF) - 1)) +#define _FMASK ((unsigned short)(0x7fff & ~_FFRAC)) +#define _FMAX ((unsigned short)((1 << (15 - _FOFF)) - 1)) +#define _FSIGN ((unsigned short)0x8000) + +// IEEE 754 long double properties +#define _LFRAC ((unsigned short)(-1)) +#define _LMASK ((unsigned short)0x7fff) +#define _LMAX ((unsigned short)0x7fff) +#define _LSIGN ((unsigned short)0x8000) + +#define _DHUGE_EXP (int)(_DMAX * 900L / 1000) +#define _FHUGE_EXP (int)(_FMAX * 900L / 1000) +#define _LHUGE_EXP (int)(_LMAX * 900L / 1000) + +#define _DSIGN_C(_Val) (((_double_val *)(char*)&(_Val))->_Sh[_D0_C] & _DSIGN) +#define _FSIGN_C(_Val) (((_float_val *)(char*)&(_Val))->_Sh[_F0_C] & _FSIGN) +#define _LSIGN_C(_Val) (((_ldouble_val*)(char*)&(_Val))->_Sh[_L0_C] & _LSIGN) + +void __cdecl _fperrraise(_In_ int _Except); + +_Check_return_ _ACRTIMP short __cdecl _dclass(_In_ double _X); +_Check_return_ _ACRTIMP short __cdecl _ldclass(_In_ long double _X); +_Check_return_ _ACRTIMP short __cdecl _fdclass(_In_ float _X); + +_Check_return_ _ACRTIMP int __cdecl _dsign(_In_ double _X); +_Check_return_ _ACRTIMP int __cdecl _ldsign(_In_ long double _X); +_Check_return_ _ACRTIMP int __cdecl _fdsign(_In_ float _X); + +_Check_return_ _ACRTIMP int __cdecl _dpcomp(_In_ double _X, _In_ double _Y); +_Check_return_ _ACRTIMP int __cdecl _ldpcomp(_In_ long double _X, _In_ long double _Y); +_Check_return_ _ACRTIMP int __cdecl _fdpcomp(_In_ float _X, _In_ float _Y); + +_Check_return_ _ACRTIMP short __cdecl _dtest(_In_ double* _Px); +_Check_return_ _ACRTIMP short __cdecl _ldtest(_In_ long double* _Px); +_Check_return_ _ACRTIMP short __cdecl _fdtest(_In_ float* _Px); + +_ACRTIMP short __cdecl _d_int(_Inout_ double* _Px, _In_ short _Xexp); +_ACRTIMP short __cdecl _ld_int(_Inout_ long double* _Px, _In_ short _Xexp); +_ACRTIMP short __cdecl _fd_int(_Inout_ float* _Px, _In_ short _Xexp); + +_ACRTIMP short __cdecl _dscale(_Inout_ double* _Px, _In_ long _Lexp); +_ACRTIMP short __cdecl _ldscale(_Inout_ long double* _Px, _In_ long _Lexp); +_ACRTIMP short __cdecl _fdscale(_Inout_ float* _Px, _In_ long _Lexp); + +_ACRTIMP short __cdecl _dunscale(_Out_ short* _Pex, _Inout_ double* _Px); +_ACRTIMP short __cdecl _ldunscale(_Out_ short* _Pex, _Inout_ long double* _Px); +_ACRTIMP short __cdecl _fdunscale(_Out_ short* _Pex, _Inout_ float* _Px); + +_Check_return_ _ACRTIMP short __cdecl _dexp(_Inout_ double* _Px, _In_ double _Y, _In_ long _Eoff); +_Check_return_ _ACRTIMP short __cdecl _ldexp(_Inout_ long double* _Px, _In_ long double _Y, _In_ long _Eoff); +_Check_return_ _ACRTIMP short __cdecl _fdexp(_Inout_ float* _Px, _In_ float _Y, _In_ long _Eoff); + +_Check_return_ _ACRTIMP short __cdecl _dnorm(_Inout_updates_(4) unsigned short* _Ps); +_Check_return_ _ACRTIMP short __cdecl _fdnorm(_Inout_updates_(2) unsigned short* _Ps); + +_Check_return_ _ACRTIMP double __cdecl _dpoly(_In_ double _X, _In_reads_(_N) double const* _Tab, _In_ int _N); +_Check_return_ _ACRTIMP long double __cdecl _ldpoly(_In_ long double _X, _In_reads_(_N) long double const* _Tab, _In_ int _N); +_Check_return_ _ACRTIMP float __cdecl _fdpoly(_In_ float _X, _In_reads_(_N) float const* _Tab, _In_ int _N); + +_Check_return_ _ACRTIMP double __cdecl _dlog(_In_ double _X, _In_ int _Baseflag); +_Check_return_ _ACRTIMP long double __cdecl _ldlog(_In_ long double _X, _In_ int _Baseflag); +_Check_return_ _ACRTIMP float __cdecl _fdlog(_In_ float _X, _In_ int _Baseflag); + +_Check_return_ _ACRTIMP double __cdecl _dsin(_In_ double _X, _In_ unsigned int _Qoff); +_Check_return_ _ACRTIMP long double __cdecl _ldsin(_In_ long double _X, _In_ unsigned int _Qoff); +_Check_return_ _ACRTIMP float __cdecl _fdsin(_In_ float _X, _In_ unsigned int _Qoff); + +// double declarations +typedef union +{ // pun floating type as integer array + unsigned short _Sh[4]; + double _Val; +} _double_val; + +// float declarations +typedef union +{ // pun floating type as integer array + unsigned short _Sh[2]; + float _Val; +} _float_val; + +// long double declarations +typedef union +{ // pun floating type as integer array + unsigned short _Sh[4]; + long double _Val; +} _ldouble_val; + +typedef union +{ // pun float types as integer array + unsigned short _Word[4]; + float _Float; + double _Double; + long double _Long_double; +} _float_const; + +extern const _float_const _Denorm_C, _Inf_C, _Nan_C, _Snan_C, _Hugeval_C; +extern const _float_const _FDenorm_C, _FInf_C, _FNan_C, _FSnan_C; +extern const _float_const _LDenorm_C, _LInf_C, _LNan_C, _LSnan_C; + +extern const _float_const _Eps_C, _Rteps_C; +extern const _float_const _FEps_C, _FRteps_C; +extern const _float_const _LEps_C, _LRteps_C; + +extern const double _Zero_C, _Xbig_C; +extern const float _FZero_C, _FXbig_C; +extern const long double _LZero_C, _LXbig_C; + +#define _FP_LT 1 +#define _FP_EQ 2 +#define _FP_GT 4 + +#ifndef __cplusplus + + #define _CLASS_ARG(_Val) __pragma(warning(suppress:6334))(sizeof ((_Val) + (float)0) == sizeof (float) ? 'f' : sizeof ((_Val) + (double)0) == sizeof (double) ? 'd' : 'l') + #define _CLASSIFY(_Val, _FFunc, _DFunc, _LDFunc) (_CLASS_ARG(_Val) == 'f' ? _FFunc((float)(_Val)) : _CLASS_ARG(_Val) == 'd' ? _DFunc((double)(_Val)) : _LDFunc((long double)(_Val))) + #define _CLASSIFY2(_Val1, _Val2, _FFunc, _DFunc, _LDFunc) (_CLASS_ARG((_Val1) + (_Val2)) == 'f' ? _FFunc((float)(_Val1), (float)(_Val2)) : _CLASS_ARG((_Val1) + (_Val2)) == 'd' ? _DFunc((double)(_Val1), (double)(_Val2)) : _LDFunc((long double)(_Val1), (long double)(_Val2))) + + #define fpclassify(_Val) (_CLASSIFY(_Val, _fdclass, _dclass, _ldclass)) + #define _FPCOMPARE(_Val1, _Val2) (_CLASSIFY2(_Val1, _Val2, _fdpcomp, _dpcomp, _ldpcomp)) + + #define isfinite(_Val) (fpclassify(_Val) <= 0) + #define isinf(_Val) (fpclassify(_Val) == FP_INFINITE) + #define isnan(_Val) (fpclassify(_Val) == FP_NAN) + #define isnormal(_Val) (fpclassify(_Val) == FP_NORMAL) + #define signbit(_Val) (_CLASSIFY(_Val, _fdsign, _dsign, _ldsign)) + + #define isgreater(x, y) ((_FPCOMPARE(x, y) & _FP_GT) != 0) + #define isgreaterequal(x, y) ((_FPCOMPARE(x, y) & (_FP_EQ | _FP_GT)) != 0) + #define isless(x, y) ((_FPCOMPARE(x, y) & _FP_LT) != 0) + #define islessequal(x, y) ((_FPCOMPARE(x, y) & (_FP_LT | _FP_EQ)) != 0) + #define islessgreater(x, y) ((_FPCOMPARE(x, y) & (_FP_LT | _FP_GT)) != 0) + #define isunordered(x, y) (_FPCOMPARE(x, y) == 0) + +#else // __cplusplus +extern "C++" +{ + _Check_return_ inline int fpclassify(_In_ float _X) throw() + { + return _fdtest(&_X); + } + + _Check_return_ inline int fpclassify(_In_ double _X) throw() + { + return _dtest(&_X); + } + + _Check_return_ inline int fpclassify(_In_ long double _X) throw() + { + return _ldtest(&_X); + } + + _Check_return_ inline bool signbit(_In_ float _X) throw() + { + return _fdsign(_X) != 0; + } + + _Check_return_ inline bool signbit(_In_ double _X) throw() + { + return _dsign(_X) != 0; + } + + _Check_return_ inline bool signbit(_In_ long double _X) throw() + { + return _ldsign(_X) != 0; + } + + _Check_return_ inline int _fpcomp(_In_ float _X, _In_ float _Y) throw() + { + return _fdpcomp(_X, _Y); + } + + _Check_return_ inline int _fpcomp(_In_ double _X, _In_ double _Y) throw() + { + return _dpcomp(_X, _Y); + } + + _Check_return_ inline int _fpcomp(_In_ long double _X, _In_ long double _Y) throw() + { + return _ldpcomp(_X, _Y); + } + + template <class _Trc, class _Tre> struct _Combined_type + { // determine combined type + typedef float _Type; + }; + + template <> struct _Combined_type<float, double> + { // determine combined type + typedef double _Type; + }; + + template <> struct _Combined_type<float, long double> + { // determine combined type + typedef long double _Type; + }; + + template <class _Ty, class _T2> struct _Real_widened + { // determine widened real type + typedef long double _Type; + }; + + template <> struct _Real_widened<float, float> + { // determine widened real type + typedef float _Type; + }; ... 114479 lines suppressed ...