STLdoc
STLdocumentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
mbctype.h
Go to the documentation of this file.
1 //
2 // mbctype.h
3 //
4 // Copyright (c) Microsoft Corporation. All rights reserved.
5 //
6 // Functions and macros for MBCS character classification and conversion.
7 //
8 #pragma once
9 #define _INC_MBCTYPE
10 
11 #include <corecrt.h>
12 #include <ctype.h>
13 
15 
16 
17 
18 // This declaration allows the user access the _mbctype[] look-up array.
19 _Check_return_ _ACRTIMP unsigned char* __cdecl __p__mbctype(void);
20 _Check_return_ _ACRTIMP unsigned char* __cdecl __p__mbcasemap(void);
21 
22 #ifdef _CRT_DECLARE_GLOBAL_VARIABLES_DIRECTLY
23  #ifndef _CORECRT_BUILD
24  extern unsigned char _mbctype[];
25  extern unsigned char _mbcasemap[];
26  #endif
27 #else
28  #define _mbctype (__p__mbctype())
29  #define _mbcasemap (__p__mbcasemap())
30 #endif
31 
32 
33 
34 // Bit masks for MBCS character types:
35 #define _MS 0x01 // MBCS single-byte symbol
36 #define _MP 0x02 // MBCS punctuation
37 #define _M1 0x04 // MBCS 1st (lead) byte
38 #define _M2 0x08 // MBCS 2nd byte
39 
40 #define _SBUP 0x10 // SBCS upper char
41 #define _SBLOW 0x20 // SBCS lower char
42 
43 // Byte types
44 #define _MBC_SINGLE 0 // Valid single byte char
45 #define _MBC_LEAD 1 // Lead byte
46 #define _MBC_TRAIL 2 // Trailing byte
47 #define _MBC_ILLEGAL (-1) // Illegal byte
48 
49 #define _KANJI_CP 932
50 
51 // _setmbcp parameter defines:
52 #define _MB_CP_SBCS 0
53 #define _MB_CP_OEM -2
54 #define _MB_CP_ANSI -3
55 #define _MB_CP_LOCALE -4
56 
57 // Multibyte control routines:
58 _ACRTIMP int __cdecl _setmbcp(_In_ int _CodePage);
59 _ACRTIMP int __cdecl _getmbcp(void);
60 
61 
62 
63 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
64 //
65 // Multibyte Character Classification and Conversion Functions
66 //
67 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
68 #if _CRT_FUNCTIONS_REQUIRED
69  _Check_return_ _DCRTIMP int __cdecl _ismbbkalnum(_In_ unsigned int _C);
70  _Check_return_ _DCRTIMP int __cdecl _ismbbkana (_In_ unsigned int _C);
71  _Check_return_ _DCRTIMP int __cdecl _ismbbkpunct(_In_ unsigned int _C);
72  _Check_return_ _DCRTIMP int __cdecl _ismbbkprint(_In_ unsigned int _C);
73  _Check_return_ _DCRTIMP int __cdecl _ismbbalpha (_In_ unsigned int _C);
74  _Check_return_ _DCRTIMP int __cdecl _ismbbpunct (_In_ unsigned int _C);
75  _Check_return_ _DCRTIMP int __cdecl _ismbbblank (_In_ unsigned int _C);
76  _Check_return_ _DCRTIMP int __cdecl _ismbbalnum (_In_ unsigned int _C);
77  _Check_return_ _DCRTIMP int __cdecl _ismbbprint (_In_ unsigned int _C);
78  _Check_return_ _DCRTIMP int __cdecl _ismbbgraph (_In_ unsigned int _C);
79 
90 
91  // BEGIN _MBLEADTRAIL_DEFINED
92  _When_(_Ch == 0, _Post_equal_to_(0))
93  _Check_return_ _DCRTIMP int __cdecl _ismbblead (_In_ unsigned int _Ch);
94  _Check_return_ _DCRTIMP int __cdecl _ismbbtrail(_In_ unsigned int _Ch);
95 
96  _When_(_Ch == 0, _Post_equal_to_(0))
97  _Check_return_ _DCRTIMP int __cdecl _ismbblead_l (_In_ unsigned int _Ch, _In_opt_ _locale_t _Locale);
98  _Check_return_ _DCRTIMP int __cdecl _ismbbtrail_l(_In_ unsigned int _Ch, _In_opt_ _locale_t _Locale);
99 
101  _DCRTIMP int __cdecl _ismbslead(
102  _In_reads_z_(_Pos - _String + 1) unsigned char const* _String,
103  _In_z_ unsigned char const* _Pos
104  );
105 
107  _DCRTIMP int __cdecl _ismbslead_l(
108  _In_reads_z_(_Pos - _String + 1) unsigned char const* _String,
109  _In_z_ unsigned char const* _Pos,
110  _In_opt_ _locale_t _Locale
111  );
112 
114  _ACRTIMP int __cdecl _ismbstrail(
115  _In_reads_z_(_Pos - _String + 1) unsigned char const* _String,
116  _In_z_ unsigned char const* _Pos
117  );
118 
120  _ACRTIMP int __cdecl _ismbstrail_l(
121  _In_reads_z_(_Pos - _String + 1) unsigned char const* _String,
122  _In_z_ unsigned char const* _Pos,
123  _In_opt_ _locale_t _Locale
124  );
125 #endif // _CRT_FUNCTIONS_REQUIRED
126 
127 
128 
129 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
130 //
131 // Unsynchronized Macro Forms of Some Classification Functions
132 //
133 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
134 #if defined _CRT_DISABLE_PERFCRIT_LOCKS && !defined _DLL
135  #define _ismbbkalnum(_c) ((_mbctype+1)[(unsigned char)(_c)] & (_MS ))
136  #define _ismbbkprint(_c) ((_mbctype+1)[(unsigned char)(_c)] & (_MS | _MP))
137  #define _ismbbkpunct(_c) ((_mbctype+1)[(unsigned char)(_c)] & (_MP ))
138 
139  #define _ismbbalnum(_c) (((_pctype)[(unsigned char)(_c)] & (_ALPHA | _DIGIT )) || _ismbbkalnum(_c))
140  #define _ismbbalpha(_c) (((_pctype)[(unsigned char)(_c)] & (_ALPHA )) || _ismbbkalnum(_c))
141  #define _ismbbgraph(_c) (((_pctype)[(unsigned char)(_c)] & (_PUNCT | _ALPHA | _DIGIT )) || _ismbbkprint(_c))
142  #define _ismbbprint(_c) (((_pctype)[(unsigned char)(_c)] & (_BLANK | _PUNCT | _ALPHA | _DIGIT)) || _ismbbkprint(_c))
143  #define _ismbbpunct(_c) (((_pctype)[(unsigned char)(_c)] & (_PUNCT )) || _ismbbkpunct(_c))
144  #define _ismbbblank(_c) (((_c) == '\t') ? _BLANK : (_pctype)[(unsigned char)(_c)] & _BLANK)
145 
146  #define _ismbblead(_c) ((_mbctype+1)[(unsigned char)(_c)] & _M1)
147  #define _ismbbtrail(_c) ((_mbctype+1)[(unsigned char)(_c)] & _M2)
148 
149  #define _ismbbkana(_c) ((_mbctype+1)[(unsigned char)(_c)] & (_MS | _MP))
150 #endif
151 
_Check_return_ _DCRTIMP int __cdecl _ismbbkalnum(_In_ unsigned int _C)
Definition: corecrt.h:489
#define _ACRTIMP
Definition: corecrt.h:27
_In_opt_ _locale_t _Locale
Definition: mbctype.h:97
_Check_return_ _DCRTIMP int __cdecl _ismbbtrail(_In_ unsigned int _Ch)
_Check_return_ _DCRTIMP int __cdecl _ismbbtrail_l(_In_ unsigned int _Ch, _In_opt_ _locale_t _Locale)
_Check_return_ _DCRTIMP int __cdecl _ismbbalpha_l(_In_ unsigned int _C, _In_opt_ _locale_t _Locale)
_Check_return_ _DCRTIMP int __cdecl _ismbbkpunct(_In_ unsigned int _C)
_Check_return_ _DCRTIMP int __cdecl _ismbbalpha(_In_ unsigned int _C)
#define _CRT_BEGIN_C_HEADER
Definition: vcruntime.h:73
_Check_return_ _DCRTIMP int __cdecl _ismbbprint(_In_ unsigned int _C)
_Check_return_ _DCRTIMP int __cdecl _ismbbkana(_In_ unsigned int _C)
#define _mbctype
Definition: mbctype.h:28
_ACRTIMP int __cdecl _setmbcp(_In_ int _CodePage)
_Check_return_ _DCRTIMP int __cdecl _ismbbalnum_l(_In_ unsigned int _C, _In_opt_ _locale_t _Locale)
_CRT_BEGIN_C_HEADER _Check_return_ _ACRTIMP unsigned char *__cdecl __p__mbctype(void)
#define _In_reads_z_(size)
Definition: sal.h:320
#define _Check_return_
Definition: sal.h:554
_String
Definition: corecrt_wstring.h:355
_Check_return_ _In_ wchar_t _Ch
Definition: vcruntime_string.h:89
#define _In_z_
Definition: sal.h:310
_Check_return_ _DCRTIMP int __cdecl _ismbslead_l(_In_reads_z_(_Pos-_String+1) unsigned char const *_String, _In_z_ unsigned char const *_Pos, _In_opt_ _locale_t _Locale)
#define _In_
Definition: sal.h:305
_When_(_Ch==0, _Post_equal_to_(0)) _Check_return_ _DCRTIMP int __cdecl _ismbblead(_In_ unsigned int _Ch)
#define _In_opt_
Definition: sal.h:306
#define _DCRTIMP
Definition: corecrt.h:43
_Check_return_ _DCRTIMP int __cdecl _ismbbpunct_l(_In_ unsigned int _C, _In_opt_ _locale_t _Locale)
#define _Post_equal_to_(expr)
Definition: sal.h:575
_Check_return_ _DCRTIMP int __cdecl _ismbbkprint_l(_In_ unsigned int _C, _In_opt_ _locale_t _Locale)
_Check_return_ _DCRTIMP int __cdecl _ismbbblank_l(_In_ unsigned int _C, _In_opt_ _locale_t _Locale)
_In_ wchar_t _C
Definition: wchar.h:253
_Check_return_ _DCRTIMP int __cdecl _ismbbblank(_In_ unsigned int _C)
_Check_return_ _ACRTIMP unsigned char *__cdecl __p__mbcasemap(void)
_ACRTIMP int __cdecl _getmbcp(void)
_Check_return_ _DCRTIMP int __cdecl _ismbbkpunct_l(_In_ unsigned int _C, _In_opt_ _locale_t _Locale)
_Check_return_ _DCRTIMP int __cdecl _ismbslead(_In_reads_z_(_Pos-_String+1) unsigned char const *_String, _In_z_ unsigned char const *_Pos)
_Check_return_ _DCRTIMP int __cdecl _ismbbgraph_l(_In_ unsigned int _C, _In_opt_ _locale_t _Locale)
#define _CRT_END_C_HEADER
Definition: vcruntime.h:76
_Check_return_ _DCRTIMP int __cdecl _ismbbalnum(_In_ unsigned int _C)
_Check_return_ _DCRTIMP int __cdecl _ismbbkana_l(_In_ unsigned int _C, _In_opt_ _locale_t _Locale)
_Check_return_ _ACRTIMP int __cdecl _ismbstrail(_In_reads_z_(_Pos-_String+1) unsigned char const *_String, _In_z_ unsigned char const *_Pos)
_Check_return_ _DCRTIMP int __cdecl _ismbbpunct(_In_ unsigned int _C)
#define _mbcasemap
Definition: mbctype.h:29
_Check_return_ _DCRTIMP int __cdecl _ismbbgraph(_In_ unsigned int _C)
_Check_return_ _DCRTIMP int __cdecl _ismbbkalnum_l(_In_ unsigned int _C, _In_opt_ _locale_t _Locale)
_Check_return_ _ACRTIMP int __cdecl _ismbstrail_l(_In_reads_z_(_Pos-_String+1) unsigned char const *_String, _In_z_ unsigned char const *_Pos, _In_opt_ _locale_t _Locale)
_Check_return_ _DCRTIMP int __cdecl _ismbbkprint(_In_ unsigned int _C)
_Check_return_ _DCRTIMP int __cdecl _ismbbprint_l(_In_ unsigned int _C, _In_opt_ _locale_t _Locale)