xref: /reactos/sdk/include/ucrt/corecrt.h (revision 51e6ce3a)
1 //
2 // corecrt.h
3 //
4 //      Copyright (c) Microsoft Corporation. All rights reserved.
5 //
6 // Declarations used throughout the CoreCRT library.
7 //
8 #pragma once
9 
10 #include <vcruntime.h>
11 
12 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
13 //
14 // Windows API Partitioning and ARM Desktop Support
15 //
16 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
17 #ifndef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
18     #ifdef WINAPI_FAMILY
19         #include <winapifamily.h>
20         #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
21             #define _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
22         #else
23             #ifdef WINAPI_FAMILY_PHONE_APP
24                 #if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
25                     #define _CRT_USE_WINAPI_FAMILY_PHONE_APP
26                 #endif
27             #endif
28 
29             #ifdef WINAPI_FAMILY_GAMES
30                 #if WINAPI_FAMILY == WINAPI_FAMILY_GAMES
31                     #define _CRT_USE_WINAPI_FAMILY_GAMES
32                 #endif
33             #endif
34         #endif
35     #else
36         #define _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
37     #endif
38 #endif
39 
40 #ifndef _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE
41     #define _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE 1
42 #endif
43 
44 #ifndef _CRT_BUILD_DESKTOP_APP
45     #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
46         #define _CRT_BUILD_DESKTOP_APP 1
47     #else
48         #define _CRT_BUILD_DESKTOP_APP 0
49     #endif
50 #endif
51 
52 // Verify that the ARM Desktop SDK is available when building an ARM Desktop app
53 #ifdef _M_ARM
54     #if _CRT_BUILD_DESKTOP_APP && !_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE
55         #error Compiling Desktop applications for the ARM platform is not supported.
56     #endif
57 #endif
58 
59 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
60 //
61 // Warning Suppression
62 //
63 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
64 
65 // C4412: function signature contains type '_locale_t';
66 //        C++ objects are unsafe to pass between pure code and mixed or native. (/Wall)
67 #ifndef _UCRT_DISABLED_WARNING_4412
68     #ifdef _M_CEE_PURE
69         #define _UCRT_DISABLED_WARNING_4412 4412
70     #else
71         #define _UCRT_DISABLED_WARNING_4412
72     #endif
73 #endif
74 
75 // Use _UCRT_EXTRA_DISABLED_WARNINGS to add additional warning suppressions to UCRT headers.
76 #ifndef _UCRT_EXTRA_DISABLED_WARNINGS
77     #define _UCRT_EXTRA_DISABLED_WARNINGS
78 #endif
79 
80 // C4324: structure was padded due to __declspec(align()) (/W4)
81 // C4514: unreferenced inline function has been removed (/Wall)
82 // C4574: 'MACRO' is defined to be '0': did you mean to use '#if MACRO'? (/Wall)
83 // C4668: '__cplusplus' is not defined as a preprocessor macro (/Wall)
84 // C4710: function not inlined (/Wall)
85 // C4793: 'function' is compiled as native code (/Wall and /W1 under /clr:pure)
86 // C4820: padding after data member (/Wall)
87 // C4995: name was marked #pragma deprecated
88 // C4996: __declspec(deprecated)
89 // C28719: Banned API, use a more robust and secure replacement.
90 // C28726: Banned or deprecated API, use a more robust and secure replacement.
91 // C28727: Banned API.
92 #ifndef _UCRT_DISABLED_WARNINGS
93     #define _UCRT_DISABLED_WARNINGS 4324 _UCRT_DISABLED_WARNING_4412 4514 4574 4710 4793 4820 4995 4996 28719 28726 28727 _UCRT_EXTRA_DISABLED_WARNINGS
94 #endif
95 
96 #ifndef _UCRT_DISABLE_CLANG_WARNINGS
97     #ifdef __clang__
98     // warning: declspec(deprecated) [-Wdeprecated-declarations]
99     // warning: __declspec attribute 'allocator' is not supported [-Wignored-attributes]
100     // warning: '#pragma optimize' is not supported [-Wignored-pragma-optimize]
101     // warning: unknown pragma ignored [-Wunknown-pragmas]
102         #define _UCRT_DISABLE_CLANG_WARNINGS                                  \
103             _Pragma("clang diagnostic push")                                  \
104             _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \
105             _Pragma("clang diagnostic ignored \"-Wignored-attributes\"")      \
106             _Pragma("clang diagnostic ignored \"-Wignored-pragma-optimize\"") \
107             _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"")
108     #else // __clang__
109         #define _UCRT_DISABLE_CLANG_WARNINGS
110     #endif // __clang__
111 #endif // _UCRT_DISABLE_CLANG_WARNINGS
112 
113 #ifndef _UCRT_RESTORE_CLANG_WARNINGS
114     #ifdef __clang__
115         #define _UCRT_RESTORE_CLANG_WARNINGS _Pragma("clang diagnostic pop")
116     #else // __clang__
117         #define _UCRT_RESTORE_CLANG_WARNINGS
118     #endif // __clang__
119 #endif // _UCRT_RESTORE_CLANG_WARNINGS
120 
121 #pragma warning(push)
122 #pragma warning(disable: _UCRT_DISABLED_WARNINGS)
123 _UCRT_DISABLE_CLANG_WARNINGS
124 
125 _CRT_BEGIN_C_HEADER
126 
127 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
128 //
129 // Annotation Macros
130 //
131 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
132 #ifndef _ACRTIMP
133     #if defined _CRTIMP && !defined _VCRT_DEFINED_CRTIMP
134         #define _ACRTIMP _CRTIMP
135     #elif !defined _CORECRT_BUILD && defined _DLL
136         #define _ACRTIMP __declspec(dllimport)
137     #else
138         #define _ACRTIMP
139     #endif
140 #endif
141 
142 // If you need the ability to remove __declspec(import) from an API, to support static replacement,
143 // declare the API using _ACRTIMP_ALT instead of _ACRTIMP.
144 #ifndef _ACRTIMP_ALT
145     #define _ACRTIMP_ALT _ACRTIMP
146 #endif
147 
148 #ifndef _DCRTIMP
149     #if defined _CRTIMP && !defined _VCRT_DEFINED_CRTIMP
150         #define _DCRTIMP _CRTIMP
151     #elif !defined _CORECRT_BUILD && defined _DLL
152         #define _DCRTIMP __declspec(dllimport)
153     #else
154         #define _DCRTIMP
155     #endif
156 #endif
157 
158 #if defined _CRT_SUPPRESS_RESTRICT || defined _CORECRT_BUILD
159     #define _CRTRESTRICT
160 #else
161     #define _CRTRESTRICT __declspec(restrict)
162 #endif
163 
164 #if defined _MSC_VER && _MSC_VER >= 1900 && !defined _CORECRT_BUILD
165     #define _CRTALLOCATOR __declspec(allocator)
166 #else
167     #define _CRTALLOCATOR
168 #endif
169 
170 #if defined _M_CEE && defined _M_X64
171     // This is only needed when managed code is calling the native APIs,
172     // targeting the 64-bit runtime.
173     #define _CRT_JIT_INTRINSIC __declspec(jitintrinsic)
174 #else
175     #define _CRT_JIT_INTRINSIC
176 #endif
177 
178 // __declspec(guard(overflow)) enabled by /sdl compiler switch for CRT allocators
179 #ifdef _GUARDOVERFLOW_CRT_ALLOCATORS
180     #define _CRT_GUARDOVERFLOW __declspec(guard(overflow))
181 #else
182     #define _CRT_GUARDOVERFLOW
183 #endif
184 
185 #if defined _DLL && (defined _M_HYBRID || defined _M_ARM64EC) && (defined _CORECRT_BUILD || defined _VCRT_BUILD)
186     #define _CRT_HYBRIDPATCHABLE __declspec(hybrid_patchable)
187 #else
188     #define _CRT_HYBRIDPATCHABLE
189 #endif
190 
191 // The CLR requires code calling other SecurityCritical code or using SecurityCritical types
192 // to be marked as SecurityCritical.
193 // _CRT_SECURITYCRITICAL_ATTRIBUTE covers this for internal function definitions.
194 // _CRT_INLINE_PURE_SECURITYCRITICAL_ATTRIBUTE is for inline pure functions defined in the header.
195 // This is clr:pure-only because for mixed mode we compile inline functions as native.
196 #ifdef _M_CEE_PURE
197     #define _CRT_INLINE_PURE_SECURITYCRITICAL_ATTRIBUTE [System::Security::SecurityCritical]
198 #else
199     #define _CRT_INLINE_PURE_SECURITYCRITICAL_ATTRIBUTE
200 #endif
201 
202 #ifndef _CONST_RETURN
203     #ifdef __cplusplus
204         #define _CONST_RETURN const
205         #define _CRT_CONST_CORRECT_OVERLOADS
206     #else
207         #define _CONST_RETURN
208     #endif
209 #endif
210 
211 #define _WConst_return _CONST_RETURN // For backwards compatibility
212 
213 #ifndef _CRT_ALIGN
214     #ifdef __midl
215         #define _CRT_ALIGN(x)
216     #else
217         #define _CRT_ALIGN(x) __declspec(align(x))
218     #endif
219 #endif
220 
221 #if defined _PREFAST_ && defined _CA_SHOULD_CHECK_RETURN
222     #define _Check_return_opt_ _Check_return_
223 #else
224     #define _Check_return_opt_
225 #endif
226 
227 #if defined _PREFAST_ && defined _CA_SHOULD_CHECK_RETURN_WER
228     #define _Check_return_wat_ _Check_return_
229 #else
230     #define _Check_return_wat_
231 #endif
232 
233 #if !defined __midl && !defined MIDL_PASS && defined _PREFAST_
234     #define __crt_typefix(ctype) __declspec("SAL_typefix(" _CRT_STRINGIZE(ctype) ")")
235 #else
236     #define __crt_typefix(ctype)
237 #endif
238 
239 #ifndef _CRT_NOEXCEPT
240     #ifdef __cplusplus
241         #define _CRT_NOEXCEPT noexcept
242     #else
243         #define _CRT_NOEXCEPT
244     #endif
245 #endif
246 
247 
248 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
249 //
250 // Miscellaneous Stuff
251 //
252 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
253 #ifdef __cplusplus
254 extern "C++"
255 {
256     template<bool _Enable, typename _Ty>
257     struct _CrtEnableIf;
258 
259     template<typename _Ty>
260     struct _CrtEnableIf<true, _Ty>
261     {
262         typedef _Ty _Type;
263     };
264 }
265 #endif
266 
267 #if defined __cplusplus
268     typedef bool  __crt_bool;
269 #elif defined __midl
270     // MIDL understands neither bool nor _Bool.  Use char as a best-fit
271     // replacement (the differences won't matter in practice).
272     typedef char __crt_bool;
273 #else
274     typedef _Bool __crt_bool;
275 #endif
276 
277 #define _ARGMAX   100
278 #define _TRUNCATE ((size_t)-1)
279 #define _CRT_INT_MAX 2147483647
280 #define _CRT_SIZE_MAX ((size_t)-1)
281 
282 #define __FILEW__     _CRT_WIDE(__FILE__)
283 
284 #ifdef _MSC_VER
285 #define __FUNCTIONW__ _CRT_WIDE(__FUNCTION__)
286 #else // _MSC_VER
287 #define __FUNCTIONW__ \
288 ({ \
289     static wchar_t __funcw__[sizeof(__func__)]; \
290     for (size_t i = 0; i < sizeof(__func__); i++) \
291         __funcw__[i] = __func__[i]; \
292     __funcw__; \
293 })
294 #endif // _MSC_VER
295 
296 #ifdef __cplusplus
297     #ifndef _STATIC_ASSERT
298         #define _STATIC_ASSERT(expr) static_assert((expr), #expr)
299     #endif
300 #else
301     #ifndef _STATIC_ASSERT
302         #ifdef __clang__
303             #define _STATIC_ASSERT(expr) _Static_assert((expr), #expr)
304         #else
305             #define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr) != 0]
306         #endif
307     #endif
308 #endif
309 
310 #ifndef NULL
311     #ifdef __cplusplus
312         #define NULL 0
313     #else
314         #define NULL ((void *)0)
315     #endif
316 #endif
317 
318 // CRT headers are included into some kinds of source files where only data type
319 // definitions and macro definitions are required but function declarations and
320 // inline function definitions are not.  These files include assembly files, IDL
321 // files, and resource files.  The tools that process these files often have a
322 // limited ability to process C and C++ code.  The _CRT_FUNCTIONS_REQUIRED macro
323 // is defined to 1 when we are compiling a file that actually needs functions to
324 // be declared (and defined, where applicable), and to 0 when we are compiling a
325 // file that does not.  This allows us to suppress declarations and definitions
326 // that are not compilable with the aforementioned tools.
327 #if !defined _CRT_FUNCTIONS_REQUIRED
328     #if defined __assembler || defined __midl || defined RC_INVOKED
329         #define _CRT_FUNCTIONS_REQUIRED 0
330     #else
331         #define _CRT_FUNCTIONS_REQUIRED 1
332     #endif
333 #endif
334 
335 #if !defined _NO_INLINING && !_CRT_FUNCTIONS_REQUIRED
336         #define _NO_INLINING // Suppress <tchar.h> inlines
337 #endif
338 
339 #ifndef _CRT_UNUSED
340     #define _CRT_UNUSED(x) (void)x
341 #endif
342 
343 #ifndef _CRT_HAS_CXX17
344  #ifdef _MSVC_LANG
345   #if _MSVC_LANG > 201402
346    #define _CRT_HAS_CXX17   1
347   #else /* _MSVC_LANG > 201402 */
348    #define _CRT_HAS_CXX17   0
349   #endif /* _MSVC_LANG > 201402 */
350  #else /* _MSVC_LANG */
351   #if defined __cplusplus && __cplusplus > 201402
352    #define _CRT_HAS_CXX17   1
353   #else /* __cplusplus > 201402 */
354    #define _CRT_HAS_CXX17   0
355   #endif /* __cplusplus > 201402 */
356  #endif /* _MSVC_LANG */
357 #endif /* _CRT_HAS_CXX17 */
358 
359 #ifndef _CRT_HAS_C11
360  #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L
361    #define _CRT_HAS_C11 1
362  #else /* defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L */
363    #define _CRT_HAS_C11 0
364  #endif /* defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L */
365 #endif /* _CRT_HAS_C11 */
366 
367 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
368 //
369 // Invalid Parameter Handler
370 //
371 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
372 #ifdef _DEBUG
373     _ACRTIMP void __cdecl _invalid_parameter(
374         _In_opt_z_ wchar_t const*,
375         _In_opt_z_ wchar_t const*,
376         _In_opt_z_ wchar_t const*,
377         _In_       unsigned int,
378         _In_       uintptr_t
379         );
380 #endif
381 
382 _ACRTIMP_ALT void __cdecl _invalid_parameter_noinfo(void);
383 _ACRTIMP __declspec(noreturn) void __cdecl _invalid_parameter_noinfo_noreturn(void);
384 
385 __declspec(noreturn)
386 _ACRTIMP void __cdecl _invoke_watson(
387     _In_opt_z_ wchar_t const* _Expression,
388     _In_opt_z_ wchar_t const* _FunctionName,
389     _In_opt_z_ wchar_t const* _FileName,
390     _In_       unsigned int _LineNo,
391     _In_       uintptr_t _Reserved);
392 
393 #ifndef _CRT_SECURE_INVALID_PARAMETER
394     #ifdef _DEBUG
395         #define _CRT_SECURE_INVALID_PARAMETER(expr) \
396             ::_invalid_parameter(_CRT_WIDE(#expr), __FUNCTIONW__, __FILEW__, __LINE__, 0)
397     #else
398         // By default, _CRT_SECURE_INVALID_PARAMETER in retail invokes
399         // _invalid_parameter_noinfo_noreturn(), which is marked
400         // __declspec(noreturn) and does not return control to the application.
401         // Even if _set_invalid_parameter_handler() is used to set a new invalid
402         // parameter handler which does return control to the application,
403         // _invalid_parameter_noinfo_noreturn() will terminate the application
404         // and invoke Watson. You can overwrite the definition of
405         // _CRT_SECURE_INVALID_PARAMETER if you need.
406         //
407         // _CRT_SECURE_INVALID_PARAMETER is used in the Standard C++ Libraries
408         // and the SafeInt library.
409         #define _CRT_SECURE_INVALID_PARAMETER(expr) \
410             ::_invalid_parameter_noinfo_noreturn()
411     #endif
412 #endif
413 
414 
415 
416 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
417 //
418 // Deprecation and Warnings
419 //
420 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
421 #define _CRT_WARNING_MESSAGE(NUMBER, MESSAGE) \
422     __FILE__ "(" _CRT_STRINGIZE(__LINE__) "): warning " NUMBER ": " MESSAGE
423 
424 #if ( defined _CRT_DECLARE_NONSTDC_NAMES && _CRT_DECLARE_NONSTDC_NAMES) || \
425     (!defined _CRT_DECLARE_NONSTDC_NAMES && !__STDC__                 )
426     #define _CRT_INTERNAL_NONSTDC_NAMES 1
427 #else
428     #define _CRT_INTERNAL_NONSTDC_NAMES 0
429 #endif
430 
431 #if defined _CRT_NONSTDC_NO_DEPRECATE && !defined _CRT_NONSTDC_NO_WARNINGS
432     #define _CRT_NONSTDC_NO_WARNINGS
433 #endif
434 
435 #ifndef _CRT_NONSTDC_DEPRECATE
436     #ifdef _CRT_NONSTDC_NO_WARNINGS
437         #define _CRT_NONSTDC_DEPRECATE(_NewName)
438     #else
439         #define _CRT_NONSTDC_DEPRECATE(_NewName) _CRT_DEPRECATE_TEXT(             \
440             "The POSIX name for this item is deprecated. Instead, use the ISO C " \
441             "and C++ conformant name: " #_NewName ". See online help for details.")
442     #endif
443 #endif
444 
445 
446 
447 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
448 //
449 // Managed CRT Support
450 //
451 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
452 #ifndef _PGLOBAL
453     #ifdef _M_CEE
454         #ifdef __cplusplus_cli
455             #define _PGLOBAL __declspec(process)
456         #else
457             #define _PGLOBAL
458         #endif
459     #else
460         #define _PGLOBAL
461     #endif
462 #endif
463 
464 #ifndef _AGLOBAL
465     #ifdef _M_CEE
466         #define _AGLOBAL __declspec(appdomain)
467     #else
468         #define _AGLOBAL
469     #endif
470 #endif
471 
472 #if defined _M_CEE && !defined _M_CEE_PURE
473     #define _M_CEE_MIXED
474 #endif
475 
476 
477 
478 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
479 //
480 // SecureCRT Configuration
481 //
482 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
483 #if defined _CRTBLD || defined _CORECRT_BUILD || defined _VCRT_BUILD
484     // Disable C++ overloads internally:
485     #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES       0
486     #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 0
487     #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES         0
488 #endif
489 
490 #if !_CRT_FUNCTIONS_REQUIRED
491     // If we don't require function declarations at all, we need not define the
492     // overloads (MIDL and RC do not need the C++ overloads).
493     #undef  _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
494     #undef  _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT
495     #undef  _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES
496     #undef  _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY
497     #undef  _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY
498 
499     #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 0
500     #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 0
501     #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 0
502     #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY 0
503     #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY 0
504 #endif
505 
506 #define __STDC_SECURE_LIB__ 200411L
507 #define __GOT_SECURE_LIB__ __STDC_SECURE_LIB__ // For backwards compatibility
508 
509 #ifndef __STDC_WANT_SECURE_LIB__
510     #define __STDC_WANT_SECURE_LIB__ 1
511 #endif
512 
513 #if !__STDC_WANT_SECURE_LIB__ && !defined _CRT_SECURE_NO_WARNINGS
514     #define _CRT_SECURE_NO_WARNINGS
515 #endif
516 
517 #ifndef RC_INVOKED
518     #if defined _CRT_SECURE_NO_DEPRECATE_GLOBALS && !defined _CRT_SECURE_NO_WARNINGS_GLOBALS
519         #define _CRT_SECURE_NO_WARNINGS_GLOBALS
520     #endif
521 #endif
522 
523 #ifndef _CRT_INSECURE_DEPRECATE_GLOBALS
524     #ifdef RC_INVOKED
525         #define _CRT_INSECURE_DEPRECATE_GLOBALS(replacement)
526     #else
527         #ifdef _CRT_SECURE_NO_WARNINGS_GLOBALS
528             #define _CRT_INSECURE_DEPRECATE_GLOBALS(replacement)
529         #else
530             #define _CRT_INSECURE_DEPRECATE_GLOBALS(replacement) _CRT_INSECURE_DEPRECATE(replacement)
531         #endif
532     #endif
533 #endif
534 
535 #if defined _CRT_MANAGED_HEAP_NO_DEPRECATE && !defined _CRT_MANAGED_HEAP_NO_WARNINGS
536     #define _CRT_MANAGED_HEAP_NO_WARNINGS
537 #endif
538 
539 #define _SECURECRT_FILL_BUFFER_PATTERN 0xFE
540 
541 #if defined _CRT_OBSOLETE_NO_DEPRECATE && !defined _CRT_OBSOLETE_NO_WARNINGS
542     #define _CRT_OBSOLETE_NO_WARNINGS
543 #endif
544 
545 #ifndef _CRT_OBSOLETE
546     #ifdef _CRT_OBSOLETE_NO_WARNINGS
547         #define _CRT_OBSOLETE(_NewItem)
548     #else
549         #define _CRT_OBSOLETE(_NewItem) _CRT_DEPRECATE_TEXT(                   \
550             "This function or variable has been superceded by newer library "  \
551             "or operating system functionality. Consider using " #_NewItem " " \
552             "instead. See online help for details.")
553     #endif
554 #endif
555 
556 #ifndef RC_INVOKED
557     #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
558         #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 0
559     #else
560         #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
561             #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0
562         #endif
563     #endif
564 
565     #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT
566         // _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT is ignored if
567         // _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES is set to 0
568         #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 0
569     #else
570         #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT
571             #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0
572         #endif
573     #endif
574 
575     #ifndef _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES
576         #if __STDC_WANT_SECURE_LIB__
577               #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 1
578         #else
579               #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 0
580         #endif
581     #else
582         #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES
583             #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0
584         #endif
585     #endif
586 
587     #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY
588         #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY 0
589     #else
590         #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY
591             #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0
592         #endif
593     #endif
594 
595     #ifndef _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY
596         #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY 0
597     #else
598         #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY
599            #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0
600         #endif
601     #endif
602 #endif
603 
604 #ifndef _CRT_SECURE_CPP_NOTHROW
605     #define _CRT_SECURE_CPP_NOTHROW throw()
606 #endif
607 
608 
609 
610 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
611 //
612 // Basic Types
613 //
614 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
615 typedef int                           errno_t;
616 typedef unsigned short                wint_t;
617 typedef unsigned short                wctype_t;
618 typedef long                          __time32_t;
619 typedef __int64                       __time64_t;
620 
621 typedef struct __crt_locale_data_public
622 {
623       unsigned short const* _locale_pctype;
624     _Field_range_(1, 2) int _locale_mb_cur_max;
625                unsigned int _locale_lc_codepage;
626 } __crt_locale_data_public;
627 
628 typedef struct __crt_locale_pointers
629 {
630     struct __crt_locale_data*    locinfo;
631     struct __crt_multibyte_data* mbcinfo;
632 } __crt_locale_pointers;
633 
634 typedef __crt_locale_pointers* _locale_t;
635 
636 typedef struct _Mbstatet
637 { // state of a multibyte translation
638     unsigned long _Wchar;
639     unsigned short _Byte, _State;
640 } _Mbstatet;
641 
642 typedef _Mbstatet mbstate_t;
643 
644 #if defined _USE_32BIT_TIME_T && defined _WIN64
645     #error You cannot use 32-bit time_t (_USE_32BIT_TIME_T) with _WIN64
646 #endif
647 
648 #if defined _VCRT_BUILD || defined _CORECRT_BUILD
649     #define _CRT_NO_TIME_T
650 #endif
651 
652 #ifndef _CRT_NO_TIME_T
653     #ifdef _USE_32BIT_TIME_T
654         typedef __time32_t time_t;
655     #else
656         typedef __time64_t time_t;
657     #endif
658 #endif
659 
660 // Indicate that these common types are defined
661 #ifndef _TIME_T_DEFINED
662     #define _TIME_T_DEFINED
663 #endif
664 
665 #if __STDC_WANT_SECURE_LIB__
666     typedef size_t rsize_t;
667 #endif
668 
669 
670 
671 
672 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
673 //
674 // C++ Secure Overload Generation Macros
675 //
676 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
677 #ifndef RC_INVOKED
678     #if defined __cplusplus && _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES
679 
680         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(_ReturnType, _FuncName, _DstType, _Dst)     \
681             extern "C++"                                                                          \
682             {                                                                                     \
683                 template <size_t _Size>                                                           \
684                 inline                                                                            \
685                 _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW  \
686                 {                                                                                 \
687                     return _FuncName(_Dst, _Size);                                                \
688                 }                                                                                 \
689             }
690 
691         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1)   \
692             extern "C++"                                                                                         \
693             {                                                                                                    \
694                 template <size_t _Size>                                                                          \
695                 inline                                                                                           \
696                 _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
697                 {                                                                                                \
698                     return _FuncName(_Dst, _Size, _TArg1);                                                       \
699                 }                                                                                                \
700             }
701 
702         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)  \
703             extern "C++"                                                                                                         \
704             {                                                                                                                    \
705                 template <size_t _Size>                                                                                          \
706                 inline                                                                                                           \
707                 _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
708                 {                                                                                                                \
709                     return _FuncName(_Dst, _Size, _TArg1, _TArg2);                                                               \
710                 }                                                                                                                \
711             }
712 
713         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
714             extern "C++"                                                                                                                         \
715             {                                                                                                                                    \
716                 template <size_t _Size>                                                                                                          \
717                 inline                                                                                                                           \
718                 _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
719                 {                                                                                                                                \
720                     return _FuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3);                                                                       \
721                 }                                                                                                                                \
722             }
723 
724         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \
725             extern "C++"                                                                                                                                          \
726             {                                                                                                                                                     \
727                 template <size_t _Size>                                                                                                                           \
728                 inline                                                                                                                                            \
729                 _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW  \
730                 {                                                                                                                                                 \
731                     return _FuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3, _TArg4);                                                                                \
732                 }                                                                                                                                                 \
733             }
734 
735         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1)  \
736             extern "C++"                                                                                                         \
737             {                                                                                                                    \
738                 template <size_t _Size>                                                                                          \
739                 inline                                                                                                           \
740                 _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
741                 {                                                                                                                \
742                     return _FuncName(_HArg1, _Dst, _Size, _TArg1);                                                               \
743                 }                                                                                                                \
744             }
745 
746         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
747             extern "C++"                                                                                                                         \
748             {                                                                                                                                    \
749                 template <size_t _Size>                                                                                                          \
750                 inline                                                                                                                           \
751                 _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
752                 {                                                                                                                                \
753                     return _FuncName(_HArg1, _Dst, _Size, _TArg1, _TArg2);                                                                       \
754                 }                                                                                                                                \
755             }
756 
757         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
758             extern "C++"                                                                                                                                          \
759             {                                                                                                                                                     \
760                 template <size_t _Size>                                                                                                                           \
761                 inline                                                                                                                                            \
762                 _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW  \
763                 {                                                                                                                                                 \
764                     return _FuncName(_HArg1, _Dst, _Size, _TArg1, _TArg2, _TArg3);                                                                                \
765                 }                                                                                                                                                 \
766             }
767 
768         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_2_0(_ReturnType, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _DstType, _Dst)  \
769             extern "C++"                                                                                                         \
770             {                                                                                                                    \
771                 template <size_t _Size>                                                                                          \
772                 inline                                                                                                           \
773                 _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, _DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \
774                 {                                                                                                                \
775                     return _FuncName(_HArg1, _HArg2, _Dst, _Size);                                                               \
776                 }                                                                                                                \
777             }
778 
779         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1) \
780             extern "C++"                                                                                                           \
781             {                                                                                                                      \
782                 template <size_t _Size>                                                                                            \
783                 inline                                                                                                             \
784                 _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW              \
785                 {                                                                                                                  \
786                     va_list _ArgList;                                                                                              \
787                     __crt_va_start(_ArgList, _TArg1);                                                                              \
788                     return _VFuncName(_Dst, _Size, _TArg1, _ArgList);                                                              \
789                 }                                                                                                                  \
790             }
791 
792         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
793             extern "C++"                                                                                                                            \
794             {                                                                                                                                       \
795                 template <size_t _Size>                                                                                                             \
796                 inline                                                                                                                              \
797                 _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW               \
798                 {                                                                                                                                   \
799                     va_list _ArgList;                                                                                                               \
800                     __crt_va_start(_ArgList, _TArg2);                                                                                               \
801                     return _VFuncName(_Dst, _Size, _TArg1, _TArg2, _ArgList);                                                                       \
802                 }                                                                                                                                   \
803             }
804 
805         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_SPLITPATH(_ReturnType, _FuncName, _DstType, _Src)               \
806             extern "C++"                                                                                          \
807             {                                                                                                     \
808                 template <size_t _DriveSize, size_t _DirSize, size_t _NameSize, size_t _ExtSize>                  \
809                 inline                                                                                            \
810                 _ReturnType __CRTDECL _FuncName(                                                                  \
811                     _In_z_ _DstType const* _Src,                                                                  \
812                     _Post_z_ _DstType (&_Drive)[_DriveSize],                                                      \
813                     _Post_z_ _DstType (&_Dir)[_DirSize],                                                          \
814                     _Post_z_ _DstType (&_Name)[_NameSize],                                                        \
815                     _Post_z_ _DstType (&_Ext)[_ExtSize]                                                           \
816                     ) _CRT_SECURE_CPP_NOTHROW                                                                     \
817                 {                                                                                                 \
818                     return _FuncName(_Src, _Drive, _DriveSize, _Dir, _DirSize, _Name, _NameSize, _Ext, _ExtSize); \
819                 }                                                                                                 \
820             }
821 
822     #else  // ^^^ _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES ^^^ // vvv !_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES vvv //
823 
824         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(_ReturnType, _FuncName, _DstType, _Dst)
825         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1)
826         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
827         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
828         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4)
829         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1)
830         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
831         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
832         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_2_0(_ReturnType, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _DstType, _Dst)
833         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1)
834         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
835         #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_SPLITPATH(_ReturnType, _FuncName, _DstType, _Src)
836 
837     #endif // !_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES
838 #endif
839 
840 
841 
842 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \
843     __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _Dst)
844 
845 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
846     __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
847 
848 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
849     __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
850 
851 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
852     __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
853 
854 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \
855     __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)
856 
857 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
858     __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
859 
860 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \
861     __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst)
862 
863 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
864     __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _FuncName##_s, _VFuncName, _VFuncName##_s, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
865 
866 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
867     __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)
868 
869 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
870     __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
871 
872 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
873     __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
874 
875 
876 
877 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \
878     __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _Dst)
879 
880 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
881     __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _DstType, _Dst, _TType1, _TArg1)
882 
883 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
884     __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
885 
886 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
887     __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
888 
889 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \
890     __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)
891 
892 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
893     __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
894 
895 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \
896     __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst)
897 
898 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
899     __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, __cdecl, _FuncName, _FuncName##_s, _VFuncName, _VFuncName##_s, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
900 
901 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
902     __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
903 
904 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
905     __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
906 
907 
908 
909 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
910 //
911 // C++ Standard Overload Generation Macros
912 //
913 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
914 #ifndef RC_INVOKED
915     #if defined __cplusplus && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
916 
917         #define __RETURN_POLICY_SAME(_FunctionCall, _Dst) return (_FunctionCall)
918         #define __RETURN_POLICY_DST(_FunctionCall, _Dst)  return ((_FunctionCall) == 0 ? _Dst : 0)
919         #define __RETURN_POLICY_VOID(_FunctionCall, _Dst) (_FunctionCall); return
920         #define __EMPTY_DECLSPEC
921 
922         #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \
923             __inline \
924             _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst) \
925             { \
926                 _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst); \
927                 return _FuncName(_Dst); \
928             } \
929             extern "C++" \
930             { \
931             template <typename _T> \
932             inline \
933             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
934             _ReturnType __CRTDECL _FuncName(_T &_Dst) _CRT_SECURE_CPP_NOTHROW \
935             { \
936                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \
937             } \
938             template <typename _T> \
939             inline \
940             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
941             _ReturnType __CRTDECL _FuncName(const _T &_Dst) _CRT_SECURE_CPP_NOTHROW \
942             { \
943                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \
944             } \
945             template <> \
946             inline \
947             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
948             _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst) _CRT_SECURE_CPP_NOTHROW \
949             { \
950                 return __insecure_##_FuncName(_Dst); \
951             } \
952             template <size_t _Size> \
953             inline \
954             _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \
955             { \
956                 _ReturnPolicy(_SecureFuncName(_Dst, _Size), _Dst); \
957             } \
958             template <> \
959             inline \
960             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
961             _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1]) _CRT_SECURE_CPP_NOTHROW \
962             { \
963                 _ReturnPolicy(_SecureFuncName(_Dst, 1), _Dst); \
964             } \
965             }
966 
967         #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \
968             __inline \
969             _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst) \
970             { \
971                 _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst); \
972                 return _FuncName(_Dst); \
973             } \
974             extern "C++" \
975             { \
976             template <typename _T> \
977             inline \
978             _CRT_INSECURE_DEPRECATE(_FuncName##_s) \
979             _ReturnType __CRTDECL _FuncName(_T &_Dst) _CRT_SECURE_CPP_NOTHROW \
980             { \
981                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \
982             } \
983             template <typename _T> \
984             inline \
985             _CRT_INSECURE_DEPRECATE(_FuncName##_s) \
986             _ReturnType __CRTDECL _FuncName(const _T &_Dst) _CRT_SECURE_CPP_NOTHROW \
987             { \
988                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \
989             } \
990             template <> \
991             inline \
992             _CRT_INSECURE_DEPRECATE(_FuncName##_s) \
993             _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst) _CRT_SECURE_CPP_NOTHROW \
994             { \
995                 return __insecure_##_FuncName(_Dst); \
996             } \
997             template <size_t _Size> \
998             inline \
999             _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \
1000             { \
1001                 size_t _SizeRead = 0; \
1002                 errno_t _Err = _FuncName##_s(_Dst + 2, (_Size - 2) < ((size_t)_Dst[0]) ? (_Size - 2) : ((size_t)_Dst[0]), &_SizeRead); \
1003                 _Dst[1] = (_DstType)(_SizeRead); \
1004                 return (_Err == 0 ? _Dst + 2 : 0); \
1005             } \
1006             template <> \
1007             inline \
1008             _CRT_INSECURE_DEPRECATE(_FuncName##_s) \
1009             _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1]) _CRT_SECURE_CPP_NOTHROW \
1010             { \
1011                 return __insecure_##_FuncName((_DstType *)_Dst); \
1012             } \
1013             template <> \
1014             inline \
1015             _CRT_INSECURE_DEPRECATE(_FuncName##_s) \
1016             _ReturnType __CRTDECL _FuncName<2>(_DstType (&_Dst)[2]) _CRT_SECURE_CPP_NOTHROW \
1017             { \
1018                 return __insecure_##_FuncName((_DstType *)_Dst); \
1019             } \
1020             }
1021 
1022         #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1023             __inline \
1024             _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1) \
1025             { \
1026                 _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1); \
1027                 return _FuncName(_Dst, _TArg1); \
1028             } \
1029             extern "C++" \
1030             { \
1031             template <typename _T> \
1032             inline \
1033             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1034             _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1035             { \
1036                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1); \
1037             } \
1038             template <typename _T> \
1039             inline \
1040             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1041             _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1042             { \
1043                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1); \
1044             } \
1045             template <> \
1046             inline \
1047             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1048             _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1049             { \
1050                 return __insecure_##_FuncName(_Dst, _TArg1); \
1051             } \
1052             template <size_t _Size> \
1053             inline \
1054             _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1055             { \
1056                 _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1), _Dst); \
1057             } \
1058             template <> \
1059             inline \
1060             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1061             _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1062             { \
1063                 _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1), _Dst); \
1064             } \
1065             }
1066 
1067         #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1068             __inline \
1069             _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1070             { \
1071                 _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); \
1072                 return _FuncName(_Dst, _TArg1, _TArg2); \
1073             } \
1074             extern "C++" \
1075             { \
1076             template <typename _T> \
1077             inline \
1078             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1079             _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1080             { \
1081                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \
1082             } \
1083             template <typename _T> \
1084             inline \
1085             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1086             _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1087             { \
1088                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \
1089             } \
1090             template <> \
1091             inline \
1092             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1093             _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1094             { \
1095                 return __insecure_##_FuncName(_Dst, _TArg1, _TArg2); \
1096             } \
1097             template <size_t _Size> \
1098             inline \
1099             _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1100             { \
1101                 _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2), _Dst); \
1102             } \
1103             template <> \
1104             inline \
1105             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1106             _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1107             { \
1108                 _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2), _Dst); \
1109             } \
1110             }
1111 
1112         #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1113             __inline \
1114             _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) \
1115             { \
1116                 _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); \
1117                 return _FuncName(_Dst, _TArg1, _TArg2, _TArg3); \
1118             } \
1119             extern "C++" \
1120             { \
1121             template <typename _T> \
1122             inline \
1123             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1124             _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1125             { \
1126                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \
1127             } \
1128             template <typename _T> \
1129             inline \
1130             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1131             _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1132             { \
1133                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \
1134             } \
1135             template <> \
1136             inline \
1137             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1138             _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1139             { \
1140                 return __insecure_##_FuncName(_Dst, _TArg1, _TArg2, _TArg3); \
1141             } \
1142             template <size_t _Size> \
1143             inline \
1144             _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1145             { \
1146                 _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3), _Dst); \
1147             } \
1148             template <> \
1149             inline \
1150             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1151             _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1152             { \
1153                 _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2, _TArg3), _Dst); \
1154             } \
1155             }
1156 
1157         #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) \
1158             __inline \
1159             _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) \
1160             { \
1161                 _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4); \
1162                 return _FuncName(_Dst, _TArg1, _TArg2, _TArg3, _TArg4); \
1163             } \
1164             extern "C++" \
1165             { \
1166             template <typename _T> \
1167             inline \
1168             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1169             _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \
1170             { \
1171                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3, _TArg4); \
1172             } \
1173             template <typename _T> \
1174             inline \
1175             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1176             _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \
1177             { \
1178                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3, _TArg4); \
1179             } \
1180             template <> \
1181             inline \
1182             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1183             _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \
1184             { \
1185                 return __insecure_##_FuncName(_Dst, _TArg1, _TArg2, _TArg3, _TArg4); \
1186             } \
1187             template <size_t _Size> \
1188             inline \
1189             _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \
1190             { \
1191                 _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3, _TArg4), _Dst); \
1192             } \
1193             template <> \
1194             inline \
1195             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1196             _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) _CRT_SECURE_CPP_NOTHROW \
1197             { \
1198                 _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2, _TArg3, _TArg4), _Dst); \
1199             } \
1200             }
1201 
1202         #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1203             __inline \
1204             _ReturnType __CRTDECL __insecure_##_FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1) \
1205             { \
1206                 _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1); \
1207                 return _FuncName(_HArg1, _Dst, _TArg1); \
1208             } \
1209             extern "C++" \
1210             { \
1211             template <typename _T> \
1212             inline \
1213             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1214             _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1215             { \
1216                 return __insecure_##_FuncName(_HArg1, static_cast<_DstType *>(_Dst), _TArg1); \
1217             } \
1218             template <typename _T> \
1219             inline \
1220             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1221             _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, const _T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1222             { \
1223                 return __insecure_##_FuncName(_HArg1, static_cast<_DstType *>(_Dst), _TArg1); \
1224             } \
1225             template <> \
1226             inline \
1227             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1228             _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType * &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1229             { \
1230                 return __insecure_##_FuncName(_HArg1, _Dst, _TArg1); \
1231             } \
1232             template <size_t _Size> \
1233             inline \
1234             _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1235             { \
1236                 _ReturnPolicy(_SecureFuncName(_HArg1, _Dst, _Size, _TArg1), _Dst); \
1237             } \
1238             template <> \
1239             inline \
1240             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1241             _ReturnType __CRTDECL _FuncName<1>(_HType1 _HArg1, _DstType (&_Dst)[1], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1242             { \
1243                 _ReturnPolicy(_SecureFuncName(_HArg1, _Dst, 1, _TArg1), _Dst); \
1244             } \
1245             }
1246 
1247         #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \
1248             __inline \
1249             _ReturnType __CRTDECL __insecure_##_FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst) \
1250             { \
1251                 _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst); \
1252                 return _FuncName(_HArg1, _HArg2, _Dst); \
1253             } \
1254             extern "C++" \
1255             { \
1256             template <typename _T> \
1257             inline \
1258             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1259             _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, _T &_Dst) _CRT_SECURE_CPP_NOTHROW \
1260             { \
1261                 return __insecure_##_FuncName(_HArg1, _HArg2, static_cast<_DstType *>(_Dst)); \
1262             } \
1263             template <typename _T> \
1264             inline \
1265             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1266             _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, const _T &_Dst) _CRT_SECURE_CPP_NOTHROW \
1267             { \
1268                 return __insecure_##_FuncName(_HArg1, _HArg2, static_cast<_DstType *>(_Dst)); \
1269             } \
1270             template <> \
1271             inline \
1272             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1273             _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType * &_Dst) _CRT_SECURE_CPP_NOTHROW \
1274             { \
1275                 return __insecure_##_FuncName(_HArg1, _HArg2, _Dst); \
1276             } \
1277             template <size_t _Size> \
1278             inline \
1279             _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, _DstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \
1280             { \
1281                 _ReturnPolicy(_SecureFuncName(_HArg1, _HArg2, _Dst, _Size), _Dst); \
1282             } \
1283             template <> \
1284             inline \
1285             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1286             _ReturnType __CRTDECL _FuncName<1>(_HType1 _HArg1, _HType2 _HArg2, _DstType (&_Dst)[1]) _CRT_SECURE_CPP_NOTHROW \
1287             { \
1288                 _ReturnPolicy(_SecureFuncName(_HArg1, _HArg2, _Dst, 1), _Dst); \
1289             } \
1290             }
1291 
1292         #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1293             __inline \
1294             _ReturnType __CRTDECL __insecure_##_VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _ArgList) \
1295             { \
1296                 _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _ArgList); \
1297                 return _VFuncName(_Dst, _TArg1, _ArgList); \
1298             } \
1299             extern "C++" \
1300             { \
1301             template <typename _T> \
1302             inline \
1303             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1304             _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \
1305             { \
1306                 va_list _ArgList; \
1307                 __crt_va_start(_ArgList, _TArg1); \
1308                 return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _ArgList); \
1309             } \
1310             template <typename _T> \
1311             inline \
1312             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1313             _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \
1314             { \
1315                 va_list _ArgList; \
1316                 __crt_va_start(_ArgList, _TArg1); \
1317                 return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _ArgList); \
1318             } \
1319                 \
1320                 template <> \
1321             inline \
1322             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1323             _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \
1324             { \
1325                 va_list _ArgList; \
1326                 __crt_va_start(_ArgList, _TArg1); \
1327                 return __insecure_##_VFuncName(_Dst, _TArg1, _ArgList); \
1328             } \
1329                 \
1330                 template <size_t _Size> \
1331             inline \
1332             _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \
1333             { \
1334                 va_list _ArgList; \
1335                 __crt_va_start(_ArgList, _TArg1); \
1336                 _ReturnPolicy(_SecureVFuncName(_Dst, _Size, _TArg1, _ArgList), _Dst); \
1337             } \
1338                 \
1339             template <> \
1340             inline \
1341             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1342             _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, ...) _CRT_SECURE_CPP_NOTHROW \
1343             { \
1344                 va_list _ArgList; \
1345                 __crt_va_start(_ArgList, _TArg1); \
1346                 _ReturnPolicy(_SecureVFuncName(_Dst, 1, _TArg1, _ArgList), _Dst); \
1347             } \
1348                 \
1349             template <typename _T> \
1350             inline \
1351             _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \
1352             _ReturnType __CRTDECL _VFuncName(_T &_Dst, _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \
1353             { \
1354                 return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _ArgList); \
1355             } \
1356             template <typename _T> \
1357             inline \
1358             _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \
1359             _ReturnType __CRTDECL _VFuncName(const _T &_Dst, _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \
1360             { \
1361                 return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _ArgList); \
1362             } \
1363             template <> \
1364             inline \
1365             _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \
1366             _ReturnType __CRTDECL _VFuncName(_SalAttributeDst _DstType *&_Dst, _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \
1367             { \
1368                 return __insecure_##_VFuncName(_Dst, _TArg1, _ArgList); \
1369             } \
1370             template <size_t _Size> \
1371             inline \
1372             _ReturnType __CRTDECL _VFuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \
1373             { \
1374                 _ReturnPolicy(_SecureVFuncName(_Dst, _Size, _TArg1, _ArgList), _Dst); \
1375             } \
1376             template <> \
1377             inline \
1378             _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \
1379             _ReturnType __CRTDECL _VFuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \
1380             { \
1381                 _ReturnPolicy(_SecureVFuncName(_Dst, 1, _TArg1, _ArgList), _Dst); \
1382             } \
1383             }
1384 
1385         #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) \
1386             __inline \
1387             _ReturnType __CRTDECL __insecure_##_VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) \
1388             { \
1389                 _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList); \
1390                 return _VFuncName(_Dst, _TArg1, _TArg2, _ArgList); \
1391             } \
1392             extern "C++" \
1393             { \
1394             template <typename _T> \
1395             inline \
1396                 _CRT_INSECURE_DEPRECATE(_FuncName##_s) \
1397             _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \
1398             { \
1399                 va_list _ArgList; \
1400                 __crt_va_start(_ArgList, _TArg2); \
1401                 return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _ArgList); \
1402             } \
1403             template <typename _T> \
1404             inline \
1405                 _CRT_INSECURE_DEPRECATE(_FuncName##_s) \
1406             _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \
1407             { \
1408                 va_list _ArgList; \
1409                 __crt_va_start(_ArgList, _TArg2); \
1410                 return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _ArgList); \
1411             } \
1412                 \
1413             template <> \
1414             inline \
1415                 _CRT_INSECURE_DEPRECATE(_FuncName##_s) \
1416             _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \
1417             { \
1418                 va_list _ArgList; \
1419                 __crt_va_start(_ArgList, _TArg2); \
1420                 return __insecure_##_VFuncName(_Dst, _TArg1, _TArg2, _ArgList); \
1421             } \
1422                 \
1423             template <size_t _Size> \
1424             inline \
1425             _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \
1426             { \
1427                 va_list _ArgList; \
1428                 __crt_va_start(_ArgList, _TArg2); \
1429                 _ReturnPolicy(_SecureVFuncName(_Dst, _Size, _TArg1, _TArg2, _ArgList), _Dst); \
1430             } \
1431                 \
1432             template <> \
1433             inline \
1434                 _CRT_INSECURE_DEPRECATE(_FuncName##_s) \
1435             _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, ...) _CRT_SECURE_CPP_NOTHROW \
1436             { \
1437                 va_list _ArgList; \
1438                 __crt_va_start(_ArgList, _TArg2); \
1439                 _ReturnPolicy(_SecureVFuncName(_Dst, 1, _TArg1, _TArg2, _ArgList), _Dst); \
1440             } \
1441                 \
1442             template <typename _T> \
1443             inline \
1444                 _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \
1445             _ReturnType __CRTDECL _VFuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \
1446             { \
1447                 return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _ArgList); \
1448             } \
1449             template <typename _T> \
1450             inline \
1451                 _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \
1452             _ReturnType __CRTDECL _VFuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \
1453             { \
1454                 return __insecure_##_VFuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _ArgList); \
1455             } \
1456             template <> \
1457             inline \
1458                 _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \
1459             _ReturnType __CRTDECL _VFuncName(_SalAttributeDst _DstType *&_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \
1460             { \
1461                 return __insecure_##_VFuncName(_Dst, _TArg1, _TArg2, _ArgList); \
1462             } \
1463             template <size_t _Size> \
1464             inline \
1465             _ReturnType __CRTDECL _VFuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \
1466             { \
1467                 _ReturnPolicy(_SecureVFuncName(_Dst, _Size, _TArg1, _TArg2, _ArgList), _Dst); \
1468             } \
1469             template <> \
1470             inline \
1471                 _CRT_INSECURE_DEPRECATE(_SecureVFuncName) \
1472             _ReturnType __CRTDECL _VFuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, va_list _ArgList) _CRT_SECURE_CPP_NOTHROW \
1473             { \
1474                 _ReturnPolicy(_SecureVFuncName(_Dst, 1, _TArg1, _TArg2, _ArgList), _Dst); \
1475             } \
1476             }
1477 
1478         #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1479             __inline \
1480             size_t __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2) \
1481             { \
1482                 _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2); \
1483                 return _FuncName(_Dst, _TArg1, _TArg2); \
1484             } \
1485             extern "C++" \
1486             { \
1487             template <typename _T> \
1488             inline \
1489             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1490             size_t __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1491             { \
1492                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \
1493             } \
1494             template <typename _T> \
1495             inline \
1496             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1497             size_t __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1498             { \
1499                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \
1500             } \
1501             template <> \
1502             inline \
1503             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1504             size_t __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1505             { \
1506                 return __insecure_##_FuncName(_Dst, _TArg1, _TArg2); \
1507             } \
1508             template <size_t _Size> \
1509             inline \
1510             size_t __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1511             { \
1512                 size_t _Ret = 0; \
1513                 _SecureFuncName(&_Ret, _Dst, _Size, _TArg1, _TArg2); \
1514                 return (_Ret > 0 ? (_Ret - 1) : _Ret); \
1515             } \
1516             template <> \
1517             inline \
1518             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1519             size_t __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1520             { \
1521                 size_t _Ret = 0; \
1522                 _SecureFuncName(&_Ret, _Dst, 1, _TArg1, _TArg2); \
1523                 return (_Ret > 0 ? (_Ret - 1) : _Ret); \
1524             } \
1525             }
1526 
1527         #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1528             __inline \
1529             size_t __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) \
1530             { \
1531                 _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3); \
1532                 return _FuncName(_Dst, _TArg1, _TArg2, _TArg3); \
1533             } \
1534             extern "C++" \
1535             { \
1536             template <typename _T> \
1537             inline \
1538             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1539             size_t __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1540             { \
1541                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \
1542             } \
1543             template <typename _T> \
1544             inline \
1545             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1546             size_t __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1547             { \
1548                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \
1549             } \
1550             template <> \
1551             inline \
1552             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1553             size_t __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1554             { \
1555                 return __insecure_##_FuncName(_Dst, _TArg1, _TArg2, _TArg3); \
1556             } \
1557             template <size_t _Size> \
1558             inline \
1559             size_t __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1560             { \
1561                 size_t _Ret = 0; \
1562                 _SecureFuncName(&_Ret, _Dst, _Size, _TArg1, _TArg2, _TArg3); \
1563                 return (_Ret > 0 ? (_Ret - 1) : _Ret); \
1564             } \
1565             template <> \
1566             inline \
1567             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1568             size_t __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1569             { \
1570                 size_t _Ret = 0; \
1571                 _SecureFuncName(&_Ret, _Dst, 1, _TArg1, _TArg2, _TArg3); \
1572                 return (_Ret > 0 ? (_Ret - 1) : _Ret); \
1573             } \
1574             }
1575 
1576         #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \
1577             __inline \
1578             _ReturnType __CRTDECL __insecure_##_FuncName(_DstType *_Dst)
1579 
1580         #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \
1581             extern "C++" \
1582             { \
1583             template <typename _T> \
1584             inline \
1585             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1586             _ReturnType __CRTDECL _FuncName(_T &_Dst) _CRT_SECURE_CPP_NOTHROW \
1587             { \
1588                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \
1589             } \
1590             template <typename _T> \
1591             inline \
1592             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1593             _ReturnType __CRTDECL _FuncName(const _T &_Dst) _CRT_SECURE_CPP_NOTHROW \
1594             { \
1595                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \
1596             } \
1597             template <> \
1598             inline \
1599             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1600             _ReturnType __CRTDECL _FuncName(_DstType * &_Dst) _CRT_SECURE_CPP_NOTHROW \
1601             { \
1602                 return __insecure_##_FuncName(_Dst); \
1603             } \
1604             template <size_t _Size> \
1605             inline \
1606             _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size]) _CRT_SECURE_CPP_NOTHROW \
1607             { \
1608                 _ReturnPolicy(_SecureFuncName(_Dst, _Size), _Dst); \
1609             } \
1610             template <> \
1611             inline \
1612             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1613             _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1]) _CRT_SECURE_CPP_NOTHROW \
1614             { \
1615                 _ReturnPolicy(_SecureFuncName(_Dst, 1), _Dst); \
1616             } \
1617             }
1618 
1619         #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \
1620             __inline \
1621             _ReturnType __CRTDECL __insecure_##_FuncName(_DstType *_Dst, _TType1 _TArg1)
1622 
1623         #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \
1624             extern "C++" \
1625             { \
1626             template <typename _T> \
1627             inline \
1628             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1629             _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1630             { \
1631                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1); \
1632             } \
1633             template <typename _T> \
1634             inline \
1635             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1636             _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1637             { \
1638                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1); \
1639             } \
1640             template <> \
1641             inline \
1642             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1643             _ReturnType __CRTDECL _FuncName(_DstType * &_Dst, _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1644             { \
1645                 return __insecure_##_FuncName(_Dst, _TArg1); \
1646             } \
1647             template <size_t _Size> \
1648             inline \
1649             _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1650             { \
1651                 _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1), _Dst); \
1652             } \
1653             template <> \
1654             inline \
1655             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1656             _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1) _CRT_SECURE_CPP_NOTHROW \
1657             { \
1658                 _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1), _Dst); \
1659             } \
1660             }
1661 
1662         #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1663             __inline \
1664             _ReturnType __CRTDECL __insecure_##_FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2)
1665 
1666         #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1667             extern "C++" \
1668             { \
1669             template <typename _T> \
1670             inline \
1671             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1672             _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1673             { \
1674                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \
1675             } \
1676             template <typename _T> \
1677             inline \
1678             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1679             _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1680             { \
1681                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2); \
1682             } \
1683             template <> \
1684             inline \
1685             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1686             _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1687             { \
1688                 return __insecure_##_FuncName(_Dst, _TArg1, _TArg2); \
1689             } \
1690             template <size_t _Size> \
1691             inline \
1692             _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1693             { \
1694                 _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2), _Dst); \
1695             } \
1696             template <> \
1697             inline \
1698             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1699             _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2) _CRT_SECURE_CPP_NOTHROW \
1700             { \
1701                 _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2), _Dst); \
1702             } \
1703             }
1704 
1705         #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1706             __inline \
1707             _ReturnType __CRTDECL __insecure_##_FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3)
1708 
1709         #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1710             extern "C++" \
1711             { \
1712             template <typename _T> \
1713             inline \
1714             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1715             _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1716             { \
1717                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \
1718             } \
1719             template <typename _T> \
1720             inline \
1721             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1722             _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1723             { \
1724                 return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \
1725             } \
1726             template <> \
1727             inline \
1728             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1729             _ReturnType __CRTDECL _FuncName(_SalAttributeDst _DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1730             { \
1731                 return __insecure_##_FuncName(_Dst, _TArg1, _TArg2, _TArg3); \
1732             } \
1733             template <size_t _Size> \
1734             inline \
1735             _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1736             { \
1737                 _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3), _Dst); \
1738             } \
1739             template <> \
1740             inline \
1741             _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1742             _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) _CRT_SECURE_CPP_NOTHROW \
1743             { \
1744                 _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2, _TArg3), _Dst); \
1745             } \
1746             }
1747 
1748         #if _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT
1749 
1750             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \
1751                 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst)
1752 
1753             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \
1754                 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst)
1755 
1756             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1757                 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
1758 
1759             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1760                 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1761 
1762             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1763                 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
1764 
1765             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4) \
1766                 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4)
1767 
1768             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1769                 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
1770 
1771             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \
1772                 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst)
1773 
1774             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1775                 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
1776 
1777             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1778                 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, __cdecl, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1779 
1780             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1781                 __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)
1782 
1783             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1784                 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1785 
1786             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1787                 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
1788 
1789 
1790             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \
1791                 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType _DstType, _Dst)
1792 
1793             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \
1794                 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst)
1795 
1796             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \
1797                 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType _DstType, _Dst, _TType1, _TArg1)
1798 
1799             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \
1800                 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1)
1801 
1802             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1803                 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1804 
1805             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1806                 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1807 
1808             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1809                 __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
1810 
1811             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1812                 __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
1813 
1814         #else // ^^^ _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT ^^^ // vvv _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT vvv //
1815 
1816             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \
1817                     _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst);
1818 
1819             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_GETS(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _DstType, _Dst) \
1820                     _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_DstType *_Dst);
1821 
1822             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1823                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1);
1824 
1825             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1826                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2);
1827 
1828             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1829                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3);
1830 
1831             #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) \
1832                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4);
1833 
1834             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1835                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1);
1836 
1837             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \
1838                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst);
1839 
1840             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName,_VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1841                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, ...); \
1842                 _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _Args);
1843 
1844             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1845                 _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \
1846                 _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType __cdecl _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args);
1847 
1848             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1849                 _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \
1850                 _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args);
1851 
1852             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1853                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2);
1854 
1855             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1856                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3);
1857 
1858 
1859             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \
1860                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1861                 __inline \
1862                 _ReturnType __CRTDECL _FuncName(_DstType *_Dst)
1863 
1864             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst)
1865 
1866             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \
1867                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1868                 __inline \
1869                 _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1)
1870 
1871             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1)
1872 
1873             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1874                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1875                 __inline \
1876                 _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2)
1877 
1878             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1879 
1880             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1881                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1882                 __inline \
1883                 _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3)
1884 
1885             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
1886 
1887         #endif // !_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT
1888 
1889     #else  // ^^^ _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES ^^^ // vvv !_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES vvv //
1890 
1891         #define __RETURN_POLICY_SAME(_FunctionCall)
1892         #define __RETURN_POLICY_DST(_FunctionCall)
1893         #define __RETURN_POLICY_VOID(_FunctionCall)
1894         #define __EMPTY_DECLSPEC
1895 
1896         #if _CRT_FUNCTIONS_REQUIRED
1897 
1898             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \
1899                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst);
1900 
1901             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \
1902                 _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst);
1903 
1904             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1905                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1);
1906 
1907             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1908                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2);
1909 
1910             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1911                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3);
1912 
1913             #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) \
1914                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4);
1915 
1916             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1917                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1);
1918 
1919             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \
1920                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst);
1921 
1922             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1923                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, ...); \
1924                 _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _Args);
1925 
1926             #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) \
1927                 _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \
1928                 _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args);
1929 
1930             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1931                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2);
1932 
1933             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1934                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3);
1935 
1936             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \
1937                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst);
1938 
1939             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_GETS(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _DstType, _Dst) \
1940                 _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_DstType *_Dst);
1941 
1942             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1943                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1);
1944 
1945             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1946                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2);
1947 
1948             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1949                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3);
1950 
1951             #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) \
1952                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4);
1953 
1954             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1955                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1);
1956 
1957             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \
1958                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst);
1959 
1960             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1961                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, ...); \
1962                 _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _Args);
1963 
1964             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1965                 _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \
1966                 _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType __cdecl _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args);
1967 
1968             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _CC, _FuncName, _VFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1969                 _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType _CC _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \
1970                 _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType _CC _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args);
1971 
1972             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1973                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2);
1974 
1975             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1976                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3);
1977 
1978 
1979             #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \
1980                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1981                 __inline \
1982                 _ReturnType __CRTDECL _FuncName(_DstType *_Dst)
1983 
1984             #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst)
1985 
1986             #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \
1987                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1988                 __inline \
1989                 _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1)
1990 
1991             #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1)
1992 
1993             #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1994                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1995                 __inline \
1996                 _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2)
1997 
1998             #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1999 
2000             #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
2001                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
2002                 __inline \
2003                 _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3)
2004 
2005             #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
2006 
2007             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \
2008                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
2009                 __inline \
2010                 _ReturnType __CRTDECL _FuncName(_DstType *_Dst)
2011 
2012             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst)
2013 
2014             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \
2015                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
2016                 __inline \
2017                 _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1)
2018 
2019             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1)
2020 
2021             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
2022                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
2023                 __inline \
2024                 _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2)
2025 
2026             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
2027 
2028             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
2029                 _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
2030                 __inline \
2031                 _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3)
2032 
2033             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
2034 
2035         #else // ^^^ _CRT_FUNCTIONS_REQUIRED ^^^ // vvv !_CRT_FUNCTIONS_REQUIRED vvv //
2036 
2037             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(...)
2038             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(...)
2039             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(...)
2040             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(...)
2041             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(...)
2042             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4_EX(...)
2043             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(...)
2044             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(...)
2045             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(...)
2046             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(...)
2047             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(...)
2048             #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(...)
2049             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(...)
2050             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_GETS(...)
2051             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(...)
2052             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(...)
2053             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(...)
2054             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4_EX(...)
2055             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(...)
2056             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(...)
2057             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(...)
2058             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(...)
2059             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(...)
2060             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(...)
2061             #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(...)
2062             #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(...)
2063             #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(...)
2064             #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(...)
2065             #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(...)
2066             #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(...)
2067             #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(...)
2068             #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(...)
2069             #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(...)
2070             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(...)
2071             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(...)
2072             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(...)
2073             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(...)
2074             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(...)
2075             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(...)
2076             #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(...)
2077             #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(...)
2078 
2079         #endif // !_CRT_FUNCTIONS_REQUIRED
2080     #endif // !_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
2081 #endif
2082 
2083 _CRT_END_C_HEADER
2084 
2085 _UCRT_RESTORE_CLANG_WARNINGS
2086 #pragma warning(pop) // _UCRT_DISABLED_WARNINGS
2087