1 /***
2 *conio.h - console and port I/O declarations
3 *
4 *           Copyright (c) Microsoft Corporation. All rights reserved.
5 *
6 *Purpose:
7 *           This include file contains the function declarations for
8 *           the MS C V2.03 compatible console I/O routines.
9 *
10 *           [Public]
11 *
12 ****/
13
14 #if        _MSC_VER > 1000
15 #pragma once
16 #endif
17
18 #ifndef _INC_CONIO
19 #define _INC_CONIO
20
21 #include <crtdefs.h>
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 /* Function prototypes */
27
28 _Check_return_wat_ _CRTIMP errno_t __cdecl _cgets_s(_Out_z_cap_(_Size)                          char * _Buffer, size_t _Size, _Out_ size_t * _SizeRead);
29 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _cgets_s, _Deref_post_count_(*_Buffer) char, _Buffer, _Out_ size_t *, _Size)
30 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(char *, _CRTIMP, _cgets, _Pre_notnull_ _Post_z_, char, _Buffer)
31 _Check_return_opt_ _CRTIMP int __cdecl _cprintf(_In_z_ _Printf_format_string_ const char * _Format, ...);
32 _Check_return_opt_ _CRTIMP int __cdecl _cprintf_s(_In_z_ _Printf_format_string_ const char * _Format, ...);
33 _Check_return_opt_ _CRTIMP int __cdecl _cputs(_In_z_ const char * _Str);
34 _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_cscanf_s) _CRTIMP int __cdecl _cscanf(_In_z_ _Scanf_format_string_ const char * _Format, ...);
35 _Check_return_opt_ _CRT_INSECURE_DEPRECATE(_cscanf_s_l) _CRTIMP int __cdecl _cscanf_l(_In_z_ _Scanf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, ...);
36 _Check_return_opt_ _CRTIMP int __cdecl _cscanf_s(_In_z_ _Scanf_format_string_ const char * _Format, ...);
37 _Check_return_opt_ _CRTIMP int __cdecl _cscanf_s_l(_In_z_ _Scanf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, ...);
38 _Check_return_ _CRTIMP int __cdecl _getch(void);
39 _Check_return_ _CRTIMP int __cdecl _getche(void);
40 _Check_return_opt_ _CRTIMP int __cdecl _vcprintf(_In_z_ _Printf_format_string_ const char * _Format, va_list _ArgList);
41 _Check_return_opt_ _CRTIMP int __cdecl _vcprintf_s(_In_z_ _Printf_format_string_ const char * _Format, va_list _ArgList);
42
43 _Check_return_opt_ _CRTIMP int __cdecl _cprintf_p(_In_z_ _Printf_format_string_ const char * _Format, ...);
44 _Check_return_opt_ _CRTIMP int __cdecl _vcprintf_p(_In_z_ const char * _Format, va_list _ArgList);
45
46 _Check_return_opt_ _CRTIMP int __cdecl _cprintf_l(_In_z_ _Printf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, ...);
47 _Check_return_opt_ _CRTIMP int __cdecl _cprintf_s_l(_In_z_ _Printf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, ...);
48 _Check_return_opt_ _CRTIMP int __cdecl _vcprintf_l(_In_z_ _Printf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
49 _Check_return_opt_ _CRTIMP int __cdecl _vcprintf_s_l(_In_z_ _Printf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
50 _Check_return_opt_ _CRTIMP int __cdecl _cprintf_p_l(_In_z_ _Printf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, ...);
51 _Check_return_opt_ _CRTIMP int __cdecl _vcprintf_p_l(_In_z_ _Printf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
52
53 #ifdef  _M_IX86
54 int __cdecl _inp(unsigned short);
55 unsigned short __cdecl _inpw(unsigned short);
56 unsigned long __cdecl _inpd(unsigned short);
57 #endif  /* _M_IX86 */
58 _CRTIMP int __cdecl _kbhit(void);
59 #ifdef  _M_IX86
60 int __cdecl _outp(unsigned short, int);
61 unsigned short __cdecl _outpw(unsigned short, unsigned short);
62 unsigned long __cdecl _outpd(unsigned short, unsigned long);
63 #endif  /* _M_IX86 */
64 _CRTIMP int __cdecl _putch(_In_ int _Ch);
65 _CRTIMP int __cdecl _ungetch(_In_ int _Ch);
66
67 _Check_return_ _CRTIMP int __cdecl _getch_nolock(void);
68 _Check_return_ _CRTIMP int __cdecl _getche_nolock(void);
69 _CRTIMP int __cdecl _putch_nolock(_In_ int _Ch);
70 _CRTIMP int __cdecl _ungetch_nolock(_In_ int _Ch);
71
72 #if !defined(_MT)
73 #define _getch()                          _getch_nolock()
74 #define _getche()                         _getche_nolock()
75 #define _putch(c)                         _putch_nolock(c)
76 #define _ungetch(c)                     _ungetch_nolock(c)
77 #endif
78
79
80 #ifndef _WCONIO_DEFINED
81
82 /* wide function prototypes, also declared in wchar.h */
83
84 #ifndef WEOF
85 #define WEOF (wint_t)(0xFFFF)
86 #endif
87
88 _Check_return_wat_ _CRTIMP errno_t __cdecl _cgetws_s(_Out_cap_post_count_(_SizeInWords, *_SizeRead) wchar_t * _Buffer, size_t _SizeInWords, _Out_ size_t * _SizeRead);
89 __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _cgetws_s, _Deref_post_count_(*_Buffer) wchar_t, _Buffer, size_t *, _Size)
90 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(wchar_t *, _CRTIMP, _cgetws, _Pre_notnull_ _Post_z_, wchar_t, _Buffer)
91 _Check_return_ _CRTIMP wint_t __cdecl _getwch(void);
92 _Check_return_ _CRTIMP wint_t __cdecl _getwche(void);
93 _Check_return_ _CRTIMP wint_t __cdecl _putwch(wchar_t _WCh);
94 _Check_return_ _CRTIMP wint_t __cdecl _ungetwch(wint_t _WCh);
95 _Check_return_opt_ _CRTIMP int __cdecl _cputws(_In_z_ const wchar_t * _String);
96 _Check_return_opt_ _CRTIMP int __cdecl _cwprintf(_In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
97 _Check_return_opt_ _CRTIMP int __cdecl _cwprintf_s(_In_z_ _Printf_format_string_ const wchar_t * _Format, ...);
Lines 98 ... 107 are skipped.
108 _CRTIMP int __cdecl _cwprintf_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
109 _CRTIMP int __cdecl _cwprintf_s_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
110 _CRTIMP int __cdecl _vcwprintf_l(_In_z_ _Printf_format_string_ const wchar_t *_Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
111 _CRTIMP int __cdecl _vcwprintf_s_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
112 _CRTIMP int __cdecl _cwprintf_p_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, ...);
113 _CRTIMP int __cdecl _vcwprintf_p_l(_In_z_ _Printf_format_string_ const wchar_t * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
114
115 _Check_return_opt_ _CRTIMP wint_t __cdecl _putwch_nolock(wchar_t _WCh);
116 _Check_return_ _CRTIMP wint_t __cdecl _getwch_nolock(void);
117 _Check_return_ _CRTIMP wint_t __cdecl _getwche_nolock(void);
118 _Check_return_opt_ _CRTIMP wint_t __cdecl _ungetwch_nolock(wint_t _WCh);
119
120 #if !defined(_MT)
121 #define _putwch()                         _putwch_nolock()
122 #define _getwch()                         _getwch_nolock()
123 #define _getwche()                       _getwche_nolock()
124 #define _ungetwch()                     _ungetwch_nolock()
125 #endif
126
127 #define _WCONIO_DEFINED
128 #endif  /* _WCONIO_DEFINED */
129
130 #if        !__STDC__
131
132 /* Non-ANSI names for compatibility */
133
134 #pragma warning(push)
135 #pragma warning(disable: 4141) /* Using deprecated twice */ 
136 _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_cgets) _CRT_INSECURE_DEPRECATE(_cgets_s) _CRTIMP char * __cdecl cgets(_Out_z_cap_x_(*_Buffer+2) char * _Buffer);
137 #pragma warning(pop)
138 _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_cprintf) _CRTIMP int __cdecl cprintf(_In_z_ _Printf_format_string_ const char * _Format, ...);
139 _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_cputs) _CRTIMP int __cdecl cputs(_In_z_ const char * _Str);
140 _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_cscanf) _CRTIMP int __cdecl cscanf(_In_z_ _Scanf_format_string_ const char * _Format, ...);
141 #ifdef  _M_IX86
142 _CRT_NONSTDC_DEPRECATE(_inp) int __cdecl inp(unsigned short);
143 _CRT_NONSTDC_DEPRECATE(_inpw) unsigned short __cdecl inpw(unsigned short);
144 #endif  /* _M_IX86 */
145 _Check_return_ _CRT_NONSTDC_DEPRECATE(_getch) _CRTIMP int __cdecl getch(void);
146 _Check_return_ _CRT_NONSTDC_DEPRECATE(_getche) _CRTIMP int __cdecl getche(void);
147 _Check_return_ _CRT_NONSTDC_DEPRECATE(_kbhit) _CRTIMP int __cdecl kbhit(void);
148 #ifdef  _M_IX86
149 _CRT_NONSTDC_DEPRECATE(_outp) int __cdecl outp(unsigned short, int);
150 _CRT_NONSTDC_DEPRECATE(_outpw) unsigned short __cdecl outpw(unsigned short, unsigned short);
151 #endif  /* _M_IX86 */
152 _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_putch) _CRTIMP int __cdecl putch(int _Ch);
153 _Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_ungetch) _CRTIMP int __cdecl ungetch(int _Ch);
154
155 #endif  /* __STDC__ */
156
157 #ifdef  __cplusplus
158 }
159 #endif
160
161 #endif  /* _INC_CONIO */
162