-
Notifications
You must be signed in to change notification settings - Fork 1
/
MbsAndWcs.cpp
61 lines (54 loc) · 1.46 KB
/
MbsAndWcs.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
*
* The contents of this file are subject to the Initial
* Developer's Public License Version 1.0 (the "License");
* you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
* https://www.firebirdsql.org/en/initial-developer-s-public-license-version-1-0/
*
* Software distributed under the License is distributed on
* an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
* express or implied. See the License for the specific
* language governing rights and limitations under the License.
*
*
* The Original Code was created by Vladimir Tsvigun for IBPhoenix.
*
* Copyright (c) 2007 Vladimir Tsvigun
* All Rights Reserved.
*/
#ifdef _WINDOWS
#include <windows.h>
#include <stdio.h>
extern UINT codePage; // from Main.cpp
size_t _MbsToWcs( wchar_t *wcstr, const char *mbstr, size_t count )
{
size_t len = MultiByteToWideChar( codePage,
0,
mbstr,
-1,
wcstr,
!wcstr ? 0 : (int)count );
if ( len > 0 )
len--;
else if ( wcstr )
len = count;
return len;
}
size_t _WcsToMbs( char *mbstr, const wchar_t *wcstr, size_t count )
{
size_t len = WideCharToMultiByte( codePage,
0,
wcstr,
-1,
(LPSTR)mbstr,
!mbstr ? 0 : (int)count,
NULL,
NULL );
if ( len > 0 )
len--;
else if ( mbstr )
len = count;
return len;
}
#endif // _WINDOWS