1 /***
2 *crtdefs.h - definitions/declarations common to all CRT
3 *
4 *           Copyright (c) Microsoft Corporation. All rights reserved.
5 *
6 *Purpose:
7 *           This file has mostly defines used by the entire CRT.
8 *
9 *           [Public]
10 *
11 ****/
12
13 /* Lack of pragma once is deliberate */
14
15 /* Define _CRTIMP */ 
16 #ifndef _CRTIMP
17 #ifdef  _DLL
18 #define _CRTIMP __declspec(dllimport)
19 #else     /* ndef _DLL */
20 #define _CRTIMP
21 #endif  /* _DLL */
22 #endif  /* _CRTIMP */
23
24 #ifndef _INC_CRTDEFS
25 #define _INC_CRTDEFS
26
27
28
29 #if defined(__midl)
30 /* MIDL does not want to see this stuff */
31 #undef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 
32 #undef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 
33 #undef _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 
34 #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 0
35 #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 0
36 #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 0
37 #endif
38
39 #if        !defined(_WIN32)
40 #error ERROR: Only Win32 target supported!
41 #endif
42
43 /* Note on use of "deprecate":
44  * Various places in this header and other headers use __declspec(deprecate) or macros that have the term DEPRECATE in them.
45  * We use deprecate here ONLY to signal the compiler to emit a warning about these items. The use of deprecate
46  * should NOT be taken to imply that any standard committee has deprecated these functions from the relevant standards.
47  * In fact, these functions are NOT deprecated from the standard.
48  *
49  * Full details can be found in our documentation by searching for "Security Enhancements in the CRT".
50 */
51
52
53 #ifdef _CRT_NOFORCE_MANIFEST
54
55       #ifdef _CRT_FORCE_MANIFEST
56              #pragma message ("_CRT_FORCE_MANIFEST and _CRT_NOFORCE_MANIFEST defined. Define just one")
57              #pragma message ("_CRT_FORCE_MANIFEST ignored")
58       #endif
59
60 #else
61
62       #if !defined(_CRT_FORCE_MANIFEST) && defined(_VC_NODEFAULTLIB)
63              #define _CRT_NOFORCE_MANIFEST
64       #endif
65
66 #endif
67
68 #include <sal.h>
69
70 #ifdef _DLL
71
72 #if !defined(_CRT_NOFORCE_MANIFEST)
73
74 #ifdef _DEBUG
75 #ifdef _CRT_MANIFEST_RETAIL
76 #define _CRT_MANIFEST_INCONSISTENT
77 #else
78 #define _CRT_MANIFEST_DEBUG
79 #endif
80 #else
81 #ifdef _CRT_MANIFEST_DEBUG
82 #define _CRT_MANIFEST_INCONSISTENT
83 #else
84 #define _CRT_MANIFEST_RETAIL
85 #endif
86 #endif
87
88 #ifdef _CRT_MANIFEST_INCONSISTENT
89 #error You have included some C++/C library header files with _DEBUG defined and some with _DEBUG not defined. This will not work correctly. Please have _DEBUG set or clear consistently.
90 #endif
91
92 #include <crtassem.h>
93
94 #if _BIND_TO_CURRENT_CRT_VERSION
95   #if !defined(_M_CEE_PURE)
96       #if defined(_M_IX86)
97              #pragma comment(linker, "/include:__forceCRTManifestCUR")
98       #else
99              #pragma comment(linker, "/include:_forceCRTManifestCUR")
100       #endif
101   #else
102              #pragma comment(linker, "/include:?_forceCRTManifestCUR@@$$Q3HA")
103   #endif
104 #endif
105
106 #ifdef _M_IX86
107
108 #ifdef _DEBUG
109 #pragma comment(linker,"/manifestdependency:\"type='win32' "                    \
110              "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".DebugCRT' "               \
111              "version='" _CRT_ASSEMBLY_VERSION "' "                                           \
112              "processorArchitecture='x86' "                                                        \
113              "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
114 #else
115 #pragma comment(linker,"/manifestdependency:\"type='win32' "                    \
116              "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".CRT' "                       \
117              "version='" _CRT_ASSEMBLY_VERSION "' "                                           \
118              "processorArchitecture='x86' "                                                        \
119              "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
120 #endif
121
122 #endif    /* _M_IX86 */
123
124 #ifdef _M_AMD64
125
126 #ifdef _DEBUG
127 #pragma comment(linker,"/manifestdependency:\"type='win32' "                    \
128              "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".DebugCRT' "               \
129              "version='" _CRT_ASSEMBLY_VERSION "' "                                           \
130              "processorArchitecture='amd64' "                                                     \
131              "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
132 #else
133 #pragma comment(linker,"/manifestdependency:\"type='win32' "                    \
134              "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".CRT' "                       \
135              "version='" _CRT_ASSEMBLY_VERSION "' "                                           \
136              "processorArchitecture='amd64' "                                                     \
137              "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
138 #endif
139
140 #endif    /* _M_AMD64 */
141
142 #ifdef _M_IA64
143
144 #ifdef _DEBUG
145 #pragma comment(linker,"/manifestdependency:\"type='win32' "                    \
146              "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".DebugCRT' "               \
147              "version='" _CRT_ASSEMBLY_VERSION "' "                                           \
148              "processorArchitecture='ia64' "                                                       \
149              "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
150 #else
151 #pragma comment(linker,"/manifestdependency:\"type='win32' "                    \
152              "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".CRT' "                       \
153              "version='" _CRT_ASSEMBLY_VERSION "' "                                           \
154              "processorArchitecture='ia64' "                                                       \
155              "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
156 #endif
157
158 #endif    /* _M_IA64 */
159
160 #endif    /* !defined(_CRT_NOFORCE_MANIFEST) */
161
162 #endif    /* _DLL */
163
164 #ifdef  _MSC_VER
165 #undef _CRT_PACKING
166 #define _CRT_PACKING 8
167
168 #pragma pack(push,_CRT_PACKING)
169 #endif  /* _MSC_VER */
170
171 #include <vadefs.h>
172
173 #ifdef  __cplusplus
174 extern "C" {
175 #endif
176
177 /* preprocessor string helpers */
178 #ifndef _CRT_STRINGIZE
179 #define __CRT_STRINGIZE(_Value) #_Value
180 #define _CRT_STRINGIZE(_Value) __CRT_STRINGIZE(_Value)
181 #endif
182
183 #ifndef _CRT_WIDE
184 #define __CRT_WIDE(_String) L ## _String
185 #define _CRT_WIDE(_String) __CRT_WIDE(_String)
186 #endif
187
188 #ifndef _CRT_APPEND
189 #define __CRT_APPEND(_Value1, _Value2) _Value1 ## _Value2
190 #define _CRT_APPEND(_Value1, _Value2) __CRT_APPEND(_Value1, _Value2)
191 #endif
192
193 #if !defined(_W64)
194 #if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
195 #define _W64 __w64
196 #else
197 #define _W64
198 #endif
199 #endif
200
201
202 /* Define _CRTIMP_NOIA64 */
203 #ifndef _CRTIMP_NOIA64
204 #if defined(_M_IA64)
205 #define _CRTIMP_NOIA64
206 #else
207 #define _CRTIMP_NOIA64 _CRTIMP
208 #endif
209 #endif
210
211 /* Define _CRTIMP2 */
212
213 #ifndef _CRTIMP2
214 #if defined(_DLL) && !defined(_STATIC_CPPLIB)
215 #define _CRTIMP2 __declspec(dllimport)
216 #else     /* ndef _DLL && !STATIC_CPPLIB */
217 #define _CRTIMP2
218 #endif  /* _DLL && !STATIC_CPPLIB */
219 #endif  /* _CRTIMP2 */
220
221 /* Define _CRTIMP_ALTERNATIVE */
222
223 #ifndef _CRTIMP_ALTERNATIVE
224 #ifdef  _DLL
225 #ifdef _CRT_ALTERNATIVE_INLINES
226 #define _CRTIMP_ALTERNATIVE
227 #else
228 #define _CRTIMP_ALTERNATIVE _CRTIMP
229 #define _CRT_ALTERNATIVE_IMPORTED
230 #endif
231 #else     /* ndef _DLL */
232 #define _CRTIMP_ALTERNATIVE
233 #endif  /* _DLL */
234 #endif  /* _CRTIMP_ALTERNATIVE */
235
236 /* Define _MRTIMP */
237
238 #ifndef _MRTIMP
239 #define _MRTIMP __declspec(dllimport)
240 #endif  /* _MRTIMP */
241
242 /* Define _MRTIMP2 */
243 #ifndef _MRTIMP2
244
245 #if defined(_DLL) && !defined(_STATIC_CPPLIB)
246 #define _MRTIMP2    __declspec(dllimport)
247
248 #else     /* ndef _DLL && !STATIC_CPPLIB */
249 #define _MRTIMP2
250 #endif  /* _DLL && !STATIC_CPPLIB */
251
252 #endif  /* _MRTIMP2 */
253
254
255 #ifndef _MCRTIMP
256 #ifdef  _DLL
257 #define _MCRTIMP __declspec(dllimport)
258 #else     /* ndef _DLL */
259 #define _MCRTIMP
260 #endif  /* _DLL */
261 #endif  /* _CRTIMP */
262
263 #ifndef __CLR_OR_THIS_CALL
264 #if defined(MRTDLL) || defined(_M_CEE_PURE)
265 #define __CLR_OR_THIS_CALL  __clrcall
266 #else
267 #define __CLR_OR_THIS_CALL
268 #endif
269 #endif
270
271 #ifndef __CLRCALL_OR_CDECL
272 #if defined(MRTDLL) || defined(_M_CEE_PURE)
273 #define __CLRCALL_OR_CDECL __clrcall
274 #else
275 #define __CLRCALL_OR_CDECL __cdecl
276 #endif
277 #endif
278
279 #ifndef _CRTIMP_PURE
280  #if defined(_M_CEE_PURE) || defined(_STATIC_CPPLIB)
281   #define _CRTIMP_PURE
282  #else
283   #define _CRTIMP_PURE _CRTIMP
284  #endif
285 #endif
286
287 #ifndef _PGLOBAL
288 #ifdef _M_CEE
289   #if defined(__cplusplus_cli)
290       #define _PGLOBAL __declspec(process)
291   #else
292       #define _PGLOBAL
293   #endif
294 #else
295 #define _PGLOBAL
296 #endif
297 #endif
298
299 #ifndef _AGLOBAL
300 #ifdef _M_CEE
301 #define _AGLOBAL __declspec(appdomain)
302 #else
303 #define _AGLOBAL
304 #endif
305 #endif
306
307 /* define a specific constant for mixed mode */
308 #ifdef _M_CEE
309 #ifndef _M_CEE_PURE
310 #define _M_CEE_MIXED
311 #endif
312 #endif
313
314 /* Define __STDC_SECURE_LIB__ */
315 #define __STDC_SECURE_LIB__ 200411L
316
317 /* Retain__GOT_SECURE_LIB__ for back-compat */
318 #define __GOT_SECURE_LIB__ __STDC_SECURE_LIB__
319
320 /* Default value for __STDC_WANT_SECURE_LIB__ is 1 */
321 #ifndef __STDC_WANT_SECURE_LIB__
322 #define __STDC_WANT_SECURE_LIB__ 1
323 #endif
324
325 /* Turn off warnings if __STDC_WANT_SECURE_LIB__ is 0 */
326 #if !__STDC_WANT_SECURE_LIB__ && !defined(_CRT_SECURE_NO_WARNINGS)
327 #define _CRT_SECURE_NO_WARNINGS
328 #endif
329
330 /* See note on use of deprecate at the top of this file */
331 #if _MSC_FULL_VER >= 140050320
332 #define _CRT_DEPRECATE_TEXT(_Text) __declspec(deprecated(_Text))
333 #else
334 #define _CRT_DEPRECATE_TEXT(_Text) __declspec(deprecated)
335 #endif
336
337 /* Define _CRT_INSECURE_DEPRECATE */
338 /* See note on use of deprecate at the top of this file */
339 #if defined(_CRT_SECURE_NO_DEPRECATE) && !defined(_CRT_SECURE_NO_WARNINGS)
340 #define _CRT_SECURE_NO_WARNINGS
341 #endif
342
343 #ifndef _CRT_INSECURE_DEPRECATE
344 #ifdef _CRT_SECURE_NO_WARNINGS
345 #define _CRT_INSECURE_DEPRECATE(_Replacement)
346 #else
347 #define _CRT_INSECURE_DEPRECATE(_Replacement) _CRT_DEPRECATE_TEXT("This function or variable may be unsafe. Consider using " #_Replacement " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.")
348 #endif
349 #endif
350
351 /* Define _CRT_INSECURE_DEPRECATE_MEMORY */
352 /* See note on use of deprecate at the top of this file */
353 #if defined(_CRT_SECURE_DEPRECATE_MEMORY) && !defined(_CRT_SECURE_WARNINGS_MEMORY)
354 #define _CRT_SECURE_WARNINGS_MEMORY
355 #endif
356
357 #ifndef _CRT_INSECURE_DEPRECATE_MEMORY
358 #if !defined(_CRT_SECURE_WARNINGS_MEMORY)
359 #define _CRT_INSECURE_DEPRECATE_MEMORY(_Replacement)
360 #else
361 #define _CRT_INSECURE_DEPRECATE_MEMORY(_Replacement) _CRT_INSECURE_DEPRECATE(_Replacement)
362 #endif
363 #endif
364
365 /* Define _CRT_INSECURE_DEPRECATE_GLOBALS */
366 /* See note on use of deprecate at the top of this file */
367 #if !defined (RC_INVOKED)
368 #if defined(_CRT_SECURE_NO_DEPRECATE_GLOBALS) && !defined(_CRT_SECURE_NO_WARNINGS_GLOBALS)
369 #define _CRT_SECURE_NO_WARNINGS_GLOBALS
370 #endif
371 #endif
372
373 #ifndef _CRT_INSECURE_DEPRECATE_GLOBALS
374 #if defined (RC_INVOKED)
375 #define _CRT_INSECURE_DEPRECATE_GLOBALS(_Replacement)
376 #else
377 #if defined(_CRT_SECURE_NO_WARNINGS_GLOBALS)
378 #define _CRT_INSECURE_DEPRECATE_GLOBALS(_Replacement)
379 #else
380 #define _CRT_INSECURE_DEPRECATE_GLOBALS(_Replacement) _CRT_INSECURE_DEPRECATE(_Replacement)
381 #endif
382 #endif
383 #endif 
384
385 /* Define _CRT_MANAGED_HEAP_DEPRECATE */
386 /* See note on use of deprecate at the top of this file */
387 #if defined(_CRT_MANAGED_HEAP_NO_DEPRECATE) && !defined(_CRT_MANAGED_HEAP_NO_WARNINGS)
388 #define _CRT_MANAGED_HEAP_NO_WARNINGS
389 #endif
390
391 #ifndef _CRT_MANAGED_HEAP_DEPRECATE
392 #ifdef _CRT_MANAGED_HEAP_NO_WARNINGS
393 #define _CRT_MANAGED_HEAP_DEPRECATE
394 #else
395 #if defined(_M_CEE)
396 #define _CRT_MANAGED_HEAP_DEPRECATE 
397 /* Disabled to allow QA tests to get fixed 
398 _CRT_DEPRECATE_TEXT("Direct heap access is not safely possible from managed code.") 
399 */
400 #else
401 #define _CRT_MANAGED_HEAP_DEPRECATE
402 #endif
403 #endif
404 #endif
405
406 /* Change the __FILL_BUFFER_PATTERN to 0xFE to fix security function buffer overrun detection bug */
407 #define _SECURECRT_FILL_BUFFER_PATTERN 0xFE
408
409 /* obsolete stuff */
410
411 /* Define _CRT_OBSOLETE */
412 /* See note on use of deprecate at the top of this file */
413 #if defined(_CRT_OBSOLETE_NO_DEPRECATE) && !defined(_CRT_OBSOLETE_NO_WARNINGS)
414 #define _CRT_OBSOLETE_NO_WARNINGS
415 #endif
416
417 #ifndef _CRT_OBSOLETE
418 #ifdef _CRT_OBSOLETE_NO_WARNINGS
419 #define _CRT_OBSOLETE(_NewItem) 
420 #else
421 #define _CRT_OBSOLETE(_NewItem) _CRT_DEPRECATE_TEXT("This function or variable has been superceded by newer library or operating system functionality. Consider using " #_NewItem " instead. See online help for details.")
422 #endif
423 #endif
424
425
426 /* jit64 instrinsic stuff */
427 #ifndef _CRT_JIT_INTRINSIC
428 #if defined(_M_CEE) && (defined(_M_AMD64) || defined(_M_IA64))
429 /* This is only needed when managed code is calling the native APIs, targeting the 64-bit runtime */
430 #define _CRT_JIT_INTRINSIC __declspec(jitintrinsic)
431 #else
432 #define _CRT_JIT_INTRINSIC 
433 #endif
434 #endif
435
436 /* Define overload switches */
437 #if !defined (RC_INVOKED) 
438  #if !defined(_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES)
439   #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 0
440  #else
441   #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
442      #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0
443   #endif
444  #endif
445 #endif
446
447 #if !defined (RC_INVOKED) 
448  #if !defined(_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT)
449   /* _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT is ignored if _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES is set to 0 */
450   #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 0
451  #else
452   #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT
453      #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0
454   #endif
455  #endif
456 #endif
457
458 #if !defined (RC_INVOKED) 
459  #if !defined(_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES)
460   #if __STDC_WANT_SECURE_LIB__
461      #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 1
462   #else
463      #define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 0
464   #endif
465  #else
466   #if !__STDC_WANT_SECURE_LIB__ && _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES
467      #error Cannot use Secure CRT C++ overloads when __STDC_WANT_SECURE_LIB__ is 0
468   #endif
469  #endif
470 #endif
471
472 /* Define _CRT_NONSTDC_DEPRECATE */
473 /* See note on use of deprecate at the top of this file */
474 #if defined(_CRT_NONSTDC_NO_DEPRECATE) && !defined(_CRT_NONSTDC_NO_WARNINGS)
475 #define _CRT_NONSTDC_NO_WARNINGS
476 #endif
477
478 #if !defined(_CRT_NONSTDC_DEPRECATE)
479 #if defined(_CRT_NONSTDC_NO_WARNINGS) || defined(_POSIX_)
480 #define _CRT_NONSTDC_DEPRECATE(_NewName)
481 #else
482 #define _CRT_NONSTDC_DEPRECATE(_NewName) _CRT_DEPRECATE_TEXT("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " #_NewName ". See online help for details.")
483 #endif
484 #endif
485
486 #ifndef _SIZE_T_DEFINED
487 #ifdef  _WIN64
488 typedef unsigned __int64      size_t;
489 #else
490 typedef _W64 unsigned int     size_t;
491 #endif
492 #define _SIZE_T_DEFINED
493 #endif
494
495 #if __STDC_WANT_SECURE_LIB__
496 #ifndef _RSIZE_T_DEFINED
497 typedef size_t rsize_t;
498 #define _RSIZE_T_DEFINED
499 #endif
500 #endif
501
502 #ifndef _INTPTR_T_DEFINED
503 #ifdef  _WIN64
504 typedef __int64                     intptr_t;
505 #else
506 typedef _W64 int                    intptr_t;
507 #endif
508 #define _INTPTR_T_DEFINED
509 #endif
510
511 #ifndef _UINTPTR_T_DEFINED
512 #ifdef  _WIN64
513 typedef unsigned __int64      uintptr_t;
514 #else
515 typedef _W64 unsigned int     uintptr_t;
516 #endif
517 #define _UINTPTR_T_DEFINED
518 #endif
519
520 #ifndef _PTRDIFF_T_DEFINED
521 #ifdef  _WIN64
522 typedef __int64                     ptrdiff_t;
523 #else
524 typedef _W64 int                    ptrdiff_t;
525 #endif
526 #define _PTRDIFF_T_DEFINED
527 #endif
528
529 #ifndef _WCHAR_T_DEFINED
530 typedef unsigned short wchar_t;
531 #define _WCHAR_T_DEFINED
532 #endif
533
534 #ifndef _WCTYPE_T_DEFINED
535 typedef unsigned short wint_t;
536 typedef unsigned short wctype_t;
537 #define _WCTYPE_T_DEFINED
538 #endif
539
540 #ifndef _VA_LIST_DEFINED
541 #ifdef _M_CEE_PURE
542 typedef System::ArgIterator va_list;
543 #else
544 typedef char *  va_list;
545 #endif
546 #define _VA_LIST_DEFINED
547 #endif
548
549 #ifdef  _USE_32BIT_TIME_T
550 #ifdef  _WIN64
551 #error You cannot use 32-bit time_t (_USE_32BIT_TIME_T) with _WIN64
552 #undef  _USE_32BIT_TIME_T
553 #endif
554 #endif
555
556 #ifndef _ERRCODE_DEFINED
557 #define _ERRCODE_DEFINED
558 /* errcode is deprecated in favor or errno_t, which is part of the standard proposal */
559 #if !defined(__midl)
560 _CRT_DEPRECATE_TEXT("This name was supported during some Whidbey pre-releases. Instead, use the standard name errno_t." ) typedef int errcode;
561 #else
562 typedef int errcode;
563 #endif
564
565 typedef int errno_t;
566 #endif
567
568 #ifndef _TIME32_T_DEFINED
569 typedef _W64 long __time32_t;     /* 32-bit time value */
570 #define _TIME32_T_DEFINED
571 #endif
572
573 #ifndef _TIME64_T_DEFINED
574 typedef __int64 __time64_t;        /* 64-bit time value */
575 #define _TIME64_T_DEFINED
576 #endif
577
578 #ifndef _TIME_T_DEFINED
579 #ifdef _USE_32BIT_TIME_T
580 typedef __time32_t time_t;          /* time value */
581 #else
582 typedef __time64_t time_t;          /* time value */
583 #endif
584 #define _TIME_T_DEFINED               /* avoid multiple def's of time_t */
585 #endif
586
587 #ifndef _CONST_RETURN
588 #ifdef  __cplusplus
589 #define _CONST_RETURN  const
590 #define _CRT_CONST_CORRECT_OVERLOADS
591 #else
592 #define _CONST_RETURN
593 #endif
594 #endif
595
596 #if !defined(UNALIGNED)
597 #if defined(_M_IA64) || defined(_M_AMD64)
598 #define UNALIGNED __unaligned
599 #else
600 #define UNALIGNED
601 #endif
602 #endif
603
604 #if !defined(_CRT_ALIGN)
605 #if defined(__midl)
606 #define _CRT_ALIGN(x)
607 #else
608 #define _CRT_ALIGN(x) __declspec(align(x))
609 #endif
610 #endif
611
612 /* Define _CRTNOALIAS, _CRTRESTRICT */
613
614 #if        _MSC_FULL_VER >= 13102050
615 #if !defined(_MSC_VER_GREATER_THEN_13102050)
616 #define _MSC_VER_GREATER_THEN_13102050 
617 #endif
618 #endif
619
620 #if        ( defined(_M_IA64) && defined(_MSC_VER_GREATER_THEN_13102050) ) || _MSC_VER >= 1400
621 #ifndef _CRTNOALIAS
622 #define _CRTNOALIAS __declspec(noalias)
623 #endif  /* _CRTNOALIAS */
624
625 #ifndef _CRTRESTRICT
626 #define _CRTRESTRICT __declspec(restrict)
627 #endif  /* _CRTRESTRICT */
628
629 #else
630
631 #ifndef _CRTNOALIAS
632 #define _CRTNOALIAS
633 #endif  /* _CRTNOALIAS */
634
635 #ifndef _CRTRESTRICT
636 #define _CRTRESTRICT
637 #endif  /* _CRTRESTRICT */
638
639 #endif
640
641 /* Define __cdecl for non-Microsoft compilers */
642 #if        ( !defined(_MSC_VER) && !defined(__cdecl) )
643 #define __cdecl
644 #endif
645
646 #if !defined(__CRTDECL)
647 #if defined(_M_CEE_PURE)
648 #define __CRTDECL
649 #else
650 #define __CRTDECL     __cdecl
651 #endif
652 #endif
653
654
655 #define _ARGMAX 100
656
657 /* _TRUNCATE */
658 #if !defined(_TRUNCATE)
659 #define _TRUNCATE ((size_t)-1)
660 #endif
661
662 /* helper macros for cpp overloads */
663 #if !defined(RC_INVOKED) 
664 #if defined(__cplusplus) && _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES
665
666 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(_ReturnType, _FuncName, _DstType, _Dst) \
667       extern "C++" \
668       { \
669       template <size_t _Size> \
670       inline \
671       _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size]) \
672       { \
673              return _FuncName(_Dst, _Size); \
674       } \
675       }
676
677 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1) \
678       extern "C++" \
679       { \
680       template <size_t _Size> \
681       inline \
682       _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1) \
683       { \
684              return _FuncName(_Dst, _Size, _TArg1); \
685       } \
686       }
687
688 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
689       extern "C++" \
690       { \
691       template <size_t _Size> \
692       inline \
693       _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) \
694       { \
695              return _FuncName(_Dst, _Size, _TArg1, _TArg2); \
696       } \
697       }
698
699 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
700       extern "C++" \
701       { \
702       template <size_t _Size> \
703       inline \
704       _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) \
705       { \
706              return _FuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3); \
707       } \
708       }
709
710 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \
711       extern "C++" \
712       { \
713       template <size_t _Size> \
714       inline \
715       _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4) \
716       { \
717              return _FuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3, _TArg4); \
718       } \
719       }
720
721 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1) \
722       extern "C++" \
723       { \
724       template <size_t _Size> \
725       inline \
726       _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1) \
727       { \
728              return _FuncName(_HArg1, _Dst, _Size, _TArg1); \
729       } \
730       }
731
732 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
733       extern "C++" \
734       { \
735       template <size_t _Size> \
736       inline \
737       _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2) \
738       { \
739              return _FuncName(_HArg1, _Dst, _Size, _TArg1, _TArg2); \
740       } \
741       }
742
743 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
744       extern "C++" \
745       { \
746       template <size_t _Size> \
747       inline \
748       _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) \
749       { \
750              return _FuncName(_HArg1, _Dst, _Size, _TArg1, _TArg2, _TArg3); \
751       } \
752       }
753
754 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_2_0(_ReturnType, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _DstType, _Dst) \
755       extern "C++" \
756       { \
757       template <size_t _Size> \
758       inline \
759       _ReturnType __CRTDECL _FuncName(_HType1 _HArg1, _HType2 _HArg2, _DstType (&_Dst)[_Size]) \
760       { \
761              return _FuncName(_HArg1, _HArg2, _Dst, _Size); \
762       } \
763       }
764
765 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1) \
766       extern "C++" \
767       { \
768     __pragma(warning(push)); \
769     __pragma(warning(disable: 4793)); \
770       template <size_t _Size> \
771       inline \
772       _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, ...) \
773       { \
774              va_list _ArgList; \
775              _crt_va_start(_ArgList, _TArg1); \
776              return _VFuncName(_Dst, _Size, _TArg1, _ArgList); \
777       } \
778     __pragma(warning(pop)); \
779       }
780
781 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
782       extern "C++" \
783       { \
784     __pragma(warning(push)); \
785     __pragma(warning(disable: 4793)); \
786       template <size_t _Size> \
787       inline \
788       _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, ...) \
789       { \
790              va_list _ArgList; \
791              _crt_va_start(_ArgList, _TArg2); \
792              return _VFuncName(_Dst, _Size, _TArg1, _TArg2, _ArgList); \
793       } \
794     __pragma(warning(pop)); \
795       }
796
797 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_SPLITPATH(_ReturnType, _FuncName, _DstType, _Src) \
798       extern "C++" \
799       { \
800       template <size_t _DriveSize, size_t _DirSize, size_t _NameSize, size_t _ExtSize> \
801       inline \
802       _ReturnType __CRTDECL _FuncName(_In_ const _DstType *_Src, _DstType (&_Drive)[_DriveSize], _DstType (&_Dir)[_DirSize], _DstType (&_Name)[_NameSize], _DstType (&_Ext)[_ExtSize]) \
803       { \
804              return _FuncName(_Src, _Drive, _DriveSize, _Dir, _DirSize, _Name, _NameSize, _Ext, _ExtSize); \
805       } \
806       }
807
808 #else
809
810 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(_ReturnType, _FuncName, _DstType, _Dst)
811 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1)
812 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
813 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
814 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4(_ReturnType, _FuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4)
815 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1)
816 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
817 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(_ReturnType, _FuncName, _HType1, _HArg1, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
818 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_2_0(_ReturnType, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _DstType, _Dst)
819 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1)
820 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST(_ReturnType, _FuncName, _VFuncName, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
821 #define __DEFINE_CPP_OVERLOAD_SECURE_FUNC_SPLITPATH(_ReturnType, _FuncName, _DstType, _Src)
822
823 #endif /* _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES */
824 #endif
825
826 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \
827       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _Dst)
828
829 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
830       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
831
832 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
833       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
834
835 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
836       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
837
838 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \
839       __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)
840
841 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
842       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
843
844 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \
845       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst)
846
847 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
848       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _VFuncName, _VFuncName##_s, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
849
850 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
851       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _VFuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
852
853 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
854       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
855
856 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
857       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
858
859
860 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \
861       __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _Dst) \
862
863 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
864       __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _SalAttributeDst, _DstType, _DstType, _Dst, _TType1, _TArg1)
865
866 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
867       __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
868
869 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
870       __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
871
872 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4, _TArg4) \
873       __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)
874
875 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
876       __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
877
878 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \
879       __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst)
880
881 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
882       __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _VFuncName, _VFuncName##_s, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
883
884 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
885       __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
886
887 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE(_DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
888       __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _FuncName##_s, _DstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
889
890
891 #if !defined(RC_INVOKED) 
892 #if defined(__cplusplus) && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
893
894 #define __RETURN_POLICY_SAME(_FunctionCall, _Dst) return (_FunctionCall)
895 #define __RETURN_POLICY_DST(_FunctionCall, _Dst) return ((_FunctionCall) == 0 ? _Dst : 0)
896 #define __RETURN_POLICY_VOID(_FunctionCall, _Dst) (_FunctionCall); return
897 #define __EMPTY_DECLSPEC
898
899 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \
900       __inline \
901       _ReturnType __CRTDECL __insecure_##_FuncName(_SalAttributeDst _DstType *_Dst) \
902       { \
903              _DeclSpec _ReturnType __cdecl _FuncName(_DstType *_Dst); \
904              return _FuncName(_Dst); \
905       } \
906       extern "C++" \
907       { \
908       template <typename _T> \
909       inline \
910       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
911       _ReturnType __CRTDECL _FuncName(_T &_Dst) \
912       { \
913              return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \
914       } \
915       template <typename _T> \
916       inline \
917       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
918       _ReturnType __CRTDECL _FuncName(const _T &_Dst) \
919       { \
920              return __insecure_##_FuncName(static_cast<_DstType *>(_Dst)); \
921       } \
922       template <> \
923       inline \
924       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
925       _ReturnType __CRTDECL _FuncName(_DstType * &_Dst) \
926       { \
927              return __insecure_##_FuncName(_Dst); \
928       } \
929       template <size_t _Size> \
930       inline \
931       _ReturnType __CRTDECL _FuncName(_DstType (&_Dst)[_Size]) \
932       { \
933              _ReturnPolicy(_SecureFuncName(_Dst, _Size), _Dst); \
934       } \
935       template <> \
936       inline \
937       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
938       _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1]) \
939       { \
940              _ReturnPolicy(_SecureFuncName(_Dst, 1), _Dst); \
941       } \
942       }
Lines 943 ... 1699 are skipped.
1700       _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2) \
1701       { \
1702              _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2), _Dst); \
1703       } \
1704       }
1705
1706 #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1707       __inline \
1708       _ReturnType __CRTDECL __insecure_##_FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3)
1709
1710 #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1711       extern "C++" \
1712       { \
1713       template <typename _T> \
1714       inline \
1715       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1716       _ReturnType __CRTDECL _FuncName(_T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) \
1717       { \
1718              return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \
1719       } \
1720       template <typename _T> \
1721       inline \
1722       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1723       _ReturnType __CRTDECL _FuncName(const _T &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) \
1724       { \
1725              return __insecure_##_FuncName(static_cast<_DstType *>(_Dst), _TArg1, _TArg2, _TArg3); \
1726       } \
1727       template <> \
1728       inline \
1729       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1730       _ReturnType __CRTDECL _FuncName(_DstType * &_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) \
1731       { \
1732              return __insecure_##_FuncName(_Dst, _TArg1, _TArg2, _TArg3); \
1733       } \
1734       template <size_t _Size> \
1735       inline \
1736       _ReturnType __CRTDECL _FuncName(_SecureDstType (&_Dst)[_Size], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) \
1737       { \
1738              _ReturnPolicy(_SecureFuncName(_Dst, _Size, _TArg1, _TArg2, _TArg3), _Dst); \
1739       } \
1740       template <> \
1741       inline \
1742       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1743       _ReturnType __CRTDECL _FuncName<1>(_DstType (&_Dst)[1], _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3) \
1744       { \
1745              _ReturnPolicy(_SecureFuncName(_Dst, 1, _TArg1, _TArg2, _TArg3), _Dst); \
1746       } \
1747       }
1748
1749 #if !defined(RC_INVOKED) && _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT
1750
1751 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \
1752       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst)
1753
1754 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \
1755       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst)
1756
1757 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1758       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
1759
1760 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1761       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1762
1763 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1764       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
1765
1766 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4) \
1767       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3, _TType4)
1768
1769 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1770       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
1771
1772 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \
1773       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst)
1774
1775 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1776       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1)
1777
1778 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1779       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1780
1781 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1782       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _VFuncName##_s, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1783
1784 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1785       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1786
1787 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1788       __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
1789
1790
1791 #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \
1792       __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType _DstType, _Dst)
1793
1794 #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \
1795       __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst)
1796
1797 #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \
1798       __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType _DstType, _Dst, _TType1, _TArg1)
1799
1800 #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \
1801       __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1)
1802
1803 #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1804       __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1805
1806 #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1807       __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1808
1809 #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1810       __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
1811
1812 #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1813       __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
1814
1815 #else
1816
1817 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \
1818              _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst);
1819
1820 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_GETS(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _DstType, _Dst) \
1821     _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_DstType *_Dst);
1822
1823 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1824       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1);
1825
1826 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1827       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2);
1828
1829 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1830       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3);
1831
1832 #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) \
1833       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4);
1834
1835 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1836       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1);
1837
1838 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \
1839       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst);
1840
1841 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName,_VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1842       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, ...); \
1843       _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType __cdecl _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _Args);
1844
1845 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1846       _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \
1847       _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType __cdecl _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args);
1848
1849 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1850       _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \
1851       _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType __cdecl _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args);
1852
1853 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1854       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2);
1855
1856 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1857       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3);
1858
1859
1860 #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \
1861       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1862       __inline \
1863       _ReturnType __CRTDECL _FuncName(_DstType *_Dst)
1864
1865 #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst)
1866
1867 #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \
1868       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1869       __inline \
1870       _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1)
1871
1872 #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1)
1873
1874 #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1875       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1876       __inline \
1877       _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2)
1878
1879 #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1880
1881 #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1882       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1883       __inline \
1884       _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3)
1885
1886 #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
1887
1888 #endif /* _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT */
1889
1890 #else
1891
1892 #define __RETURN_POLICY_SAME(_FunctionCall)
1893 #define __RETURN_POLICY_DST(_FunctionCall)
1894 #define __RETURN_POLICY_VOID(_FunctionCall)
1895 #define __EMPTY_DECLSPEC
1896
1897 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \
1898       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst);
1899
1900 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(_ReturnType, _DeclSpec, _FuncName, _SalAttributeDst, _DstType, _Dst) \
1901       _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst);
1902
1903 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1904       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1);
1905
1906 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1907       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2);
1908
1909 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1910       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3);
1911
1912 #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) \
1913       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4);
1914
1915 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1916       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1);
1917
1918 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \
1919       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst);
1920
1921 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1922       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, ...); \
1923       _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType __cdecl _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _Args);
1924
1925 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SecureVFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1926       _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \
1927       _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType __cdecl _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args);
1928
1929 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1930       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2);
1931
1932 #define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1933       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3);
1934
1935 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SalAttributeDst, _DstType, _Dst) \
1936       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst);
1937
1938 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_0_GETS(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _DstType, _Dst) \
1939       _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_DstType *_Dst);
1940
1941 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1942       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1);
1943
1944 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1945       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2);
1946
1947 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1948       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3);
1949
1950 #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) \
1951       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3, _TType4 _TArg4);
1952
1953 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_1_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1954       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _SalAttributeDst _DstType *_Dst, _TType1 _TArg1);
1955
1956 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_2_0_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _HType1, _HArg1, _HType2, _HArg2, _SalAttributeDst, _DstType, _Dst) \
1957       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_HType1 _HArg1, _HType2 _HArg2, _SalAttributeDst _DstType *_Dst);
1958
1959 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_1_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _VFuncName, _SecureVFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1) \
1960       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, ...); \
1961       _CRT_INSECURE_DEPRECATE(_SecureVFuncName) _DeclSpec _ReturnType __cdecl _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, va_list _Args);
1962
1963 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1964       _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \
1965       _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType __cdecl _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args);
1966
1967 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _VFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1968       _CRT_INSECURE_DEPRECATE(_FuncName##_s) _DeclSpec _ReturnType __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, ...); \
1969       _CRT_INSECURE_DEPRECATE(_VFuncName##_s) _DeclSpec _ReturnType __cdecl _VFuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, va_list _Args);
1970
1971 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1972       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2);
1973
1974 #define __DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX(_DeclSpec, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
1975       _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec size_t __cdecl _FuncName(_SalAttributeDst _DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3);
1976
1977
1978 #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \
1979       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1980       __inline \
1981       _ReturnType __CRTDECL _FuncName(_DstType *_Dst)
1982
1983 #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst)
1984
1985 #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \
1986       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1987       __inline \
1988       _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1)
1989
1990 #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1)
1991
1992 #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
1993       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
1994       __inline \
1995       _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2)
1996
1997 #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
1998
1999 #define __DECLARE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
2000       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
2001       __inline \
2002       _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3)
2003
2004 #define __DEFINE_CPP_OVERLOAD_INLINE_FUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
2005
2006 #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst) \
2007       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
2008       __inline \
2009       _ReturnType __CRTDECL _FuncName(_DstType *_Dst)
2010
2011 #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_0_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst)
2012
2013 #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1) \
2014       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
2015       __inline \
2016       _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1)
2017
2018 #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_1_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1)
2019
2020 #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2) \
2021       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
2022       __inline \
2023       _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2)
2024
2025 #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_2_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2)
2026
2027 #define __DECLARE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3) \
2028       _CRT_INSECURE_DEPRECATE(_SecureFuncName) \
2029       __inline \
2030       _ReturnType __CRTDECL _FuncName(_DstType *_Dst, _TType1 _TArg1, _TType2 _TArg2, _TType3 _TArg3)
2031
2032 #define __DEFINE_CPP_OVERLOAD_INLINE_NFUNC_0_3_EX(_ReturnType, _ReturnPolicy, _FuncName, _SecureFuncName, _SecureDstType, _SalAttributeDst, _DstType, _Dst, _TType1, _TArg1, _TType2, _TArg2, _TType3, _TArg3)
2033
2034 #endif /* _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES */
2035 #endif
2036
2037 struct threadlocaleinfostruct;
2038 struct threadmbcinfostruct;
2039 typedef struct threadlocaleinfostruct * pthreadlocinfo;
2040 typedef struct threadmbcinfostruct * pthreadmbcinfo;
2041 struct __lc_time_data;
2042
2043 typedef struct localeinfo_struct
2044 {
2045       pthreadlocinfo locinfo;
2046       pthreadmbcinfo mbcinfo;
2047 } _locale_tstruct, *_locale_t;
2048
2049 #ifndef _TAGLC_ID_DEFINED
2050 typedef struct tagLC_ID {
2051              unsigned short wLanguage;
2052              unsigned short wCountry;
2053              unsigned short wCodePage;
2054 } LC_ID, *LPLC_ID;
2055 #define _TAGLC_ID_DEFINED
2056 #endif  /* _TAGLC_ID_DEFINED */
2057
2058 #ifndef _THREADLOCALEINFO
2059 typedef struct threadlocaleinfostruct {
2060              int refcount;
2061              unsigned int lc_codepage;
2062              unsigned int lc_collate_cp;
2063              unsigned long lc_handle[6]; /* LCID */
2064              LC_ID lc_id[6];
2065              struct {
2066                     char *locale;
2067                     wchar_t *wlocale;
2068                     int *refcount;
2069                     int *wrefcount;
2070              } lc_category[6];
2071              int lc_clike;
2072              int mb_cur_max;
2073              int * lconv_intl_refcount;
2074              int * lconv_num_refcount;
2075              int * lconv_mon_refcount;
2076              struct lconv * lconv;
2077              int * ctype1_refcount;
2078              unsigned short * ctype1;
2079              const unsigned short * pctype;
2080              const unsigned char * pclmap;
2081              const unsigned char * pcumap;
2082              struct __lc_time_data * lc_time_curr;
2083 } threadlocinfo;
2084 #define _THREADLOCALEINFO
2085 #endif
2086
2087 #ifdef  __cplusplus
2088 }
2089 #endif
2090
2091 #if defined(_PREFAST_) && defined(_PFT_SHOULD_CHECK_RETURN)
2092 #define _Check_return_opt_ _Check_return_
2093 #else
2094 #define _Check_return_opt_
2095 #endif
2096
2097 #if defined(_PREFAST_) && defined(_PFT_SHOULD_CHECK_RETURN_WAT)
2098 #define _Check_return_wat_ _Check_return_
2099 #else
2100 #define _Check_return_wat_
2101 #endif
2102
2103 #if !defined(__midl) && !defined(MIDL_PASS) && defined(_PREFAST_) 
2104 #define __crt_typefix(ctype)                       __declspec("SAL_typefix(" __CRT_STRINGIZE(ctype) ")")
2105 #else
2106 #define __crt_typefix(ctype)
2107 #endif
2108
2109 #if (defined(__midl))
2110 /* suppress tchar inlines */
2111 #ifndef _NO_INLINING
2112 #define _NO_INLINING
2113 #endif
2114 #endif
2115
2116 #ifndef _CRT_UNUSED
2117 #define _CRT_UNUSED(x) (void)x
2118 #endif
2119
2120 #ifdef  _MSC_VER
2121 #pragma pack(pop)
2122 #endif  /* _MSC_VER */
2123
2124 #endif  /* _INC_CRTDEFS */
2125
2126
2127