--- np2/win9x/oemtext.h 2005/03/20 06:09:16 1.3 +++ np2/win9x/oemtext.h 2006/12/23 23:34:32 1.7 @@ -1,14 +1,100 @@ +#ifndef __GNUC__ +#include +#endif + +#include "codecnv.h" + #ifdef __cplusplus extern "C" { #endif -#if defined(OSLANG_UTF8) || defined(OSLANG_UCS2) -UINT oemtext_sjistooem(OEMCHAR *dst, UINT dcnt, const char *src, UINT scnt); -UINT oemtext_oemtosjis(char *dst, UINT dcnt, const OEMCHAR *src, UINT scnt); -#endif +UINT oemtext_mbtoucs2(UINT cp, wchar_t *dst, UINT dcnt, const char *src, UINT scnt); +UINT oemtext_ucs2tomb(UINT cp, char *dst, UINT dcnt, const wchar_t *src, UINT scnt); +UINT oemtext_mbtoutf8(UINT cp, char *dst, UINT dcnt, const char *src, UINT scnt); +UINT oemtext_utf8tomb(UINT cp, char *dst, UINT dcnt, const char *src, UINT scnt); + +UINT oemtext_chartoucs2(wchar_t *dst, UINT dcnt, const char *src, UINT scnt); +UINT oemtext_ucs2tochar(char *dst, UINT dcnt, const wchar_t *src, UINT scnt); +UINT oemtext_chartoutf8(char *dst, UINT dcnt, const char *src, UINT scnt); +UINT oemtext_utf8tochar(char *dst, UINT dcnt, const char *src, UINT scnt); #ifdef __cplusplus } #endif +#if defined(OSLANG_UTF8) +#define oemtext_sjistooem(a, b, c, d) oemtext_mbtoutf8(CP_932, a, b, c, d) +#define oemtext_oemtosjis(a, b, c, d) oemtext_utf8tomb(CP_932, a, b, c, d) +#elif defined(OSLANG_UCS2) +#define oemtext_sjistooem(a, b, c, d) oemtext_mbtoucs2(CP_932, a, b, c, d) +#define oemtext_oemtosjis(a, b, c, d) oemtext_ucs2tomb(CP_932, a, b, c, d) +#endif + + +// ---- WindowsÍÑ TCHAR-OEMCHARÊÑ´¹ + +#undef OEMCHAR_SAME_TCHAR + +#if !defined(_UNICODE) && defined(OSLANG_UCS2) +#define tchartooem oemtext_chartoucs2 +#define oemtotchar oemtext_ucs2tochar +#elif !defined(_UNICODE) && defined(OSLANG_UTF8) +#define tchartooem oemtext_chartoutf8 +#define oemtotchar oemtext_utf8tochar +#elif defined(_UNICODE) && (defined(OSLANG_ANK) || defined(OSLANG_SJIS)) +#define tchartooem oemtext_ucs2tochar +#define oemtotchar oemtext_chartoucs2 +#elif defined(_UNICODE) && defined(OSLANG_UTF8) +#define tchartooem codecnv_ucs2toutf8 +#define oemtotchar codecnv_utf8toucs2 +#else +#define OEMCHAR_SAME_TCHAR +#endif + + +// ---- strres + +#if defined(OEMCHAR_SAME_TCHAR) + +#define tchar_null str_null +#define tchar_d str_d +#define tchar_u str_u +#define tchar_2x str_2x +#define tchar_2d str_2d +#define tchar_4X str_4X +#define tchar_bmp str_bmp +#define tchar_d88 str_d88 +#define tchar_thd str_thd +#define tchar_hdd str_hdd + +#else + +extern const TCHAR tchar_null[]; +extern const TCHAR tchar_d[]; +extern const TCHAR tchar_u[]; +extern const TCHAR tchar_2x[]; +extern const TCHAR tchar_2d[]; +extern const TCHAR tchar_4X[]; +extern const TCHAR tchar_bmp[]; +extern const TCHAR tchar_d88[]; +extern const TCHAR tchar_thd[]; +extern const TCHAR tchar_hdd[]; + +#endif + + +// ---- milstr + +#if defined(OEMCHAR_SAME_TCHAR) + +#define miltchar_solveHEX(s) milstr_solveHEX(s) +#define miltchar_solveINT(s) milstr_solveINT(s) + +#else + +long STRCALL miltchar_solveHEX(const TCHAR *str); +long STRCALL miltchar_solveINT(const TCHAR *str); + +#endif +