#ifndef __MYU_STANDARD_LIBRARY__mslcharset_H__
#define __MYU_STANDARD_LIBRARY__mslcharset_H__

//#include "mslcommon.h"
#include "msl_stlcommon.h"
#include "mslstr.h"
#include <windows.h>

/*
//	STL系
#pragma warning( disable : 4786 ) // VC での警告を取り除きます。
#include <string>
#include <vector>
#include <map>
using namespace std;
*/

////////////////////////////////////////////////////
//
//	関数群
//

namespace msl{

#define MSL_CHARSET_UTF7		"UTF-7"
#define MSL_CHARSET_UTF8		"UTF-8"
#define MSL_CHARSET_UNICODE		"Unicode"
#define MSL_CHARSET_UTF16		"Unicode"
#define MSL_CHARSET_SHIFT_JIS	"Shift_JIS"
#define MSL_CHARSET_EUC_JP		"EUC-JP"

	//	長さを返す
	int CharConv( const char* szFromCodeset, const char* szToCodeset,
				  const char* szFrom, char* szTo, int nToBufSize );
	/*bool CharConv( const char* szFromCodeset, const char* szToCodeset,
				  const char* szFrom, char* szTo, int nToBufSize );*/
	char* CharConv( const char* szFromCodeset, const char* szToCodeset, const char* szFrom );
	char* CharConvSB( const char* szFromCodeset, const char* szToCodeset, const char* szFrom );
	/*BOOL Utf8toSJis( BYTE* pSource, BYTE* pDist, int* pnSize );
	inline const char* Utf8toSJis( BYTE* pSource ){
		char
		Utf8toSJis
	}*/

	//	Windows用関数
#ifdef WIN32
	int MyuWindowsUnicodeToMultiByte( UINT nCodePage, const char* szUnicodeStrIn, char* szAnsiStrOut, int nOutBufSize );
	/*inline int MyuWindowsUnicodeToAnsi( const char* szUnicodeStrIn ){
		return MyuWindowsUnicodeToAnsi(szUnicodeStrIn,NULL,NULL); }*/
	int MyuWindowsMultiByteToUnicode( UINT nCodePage, const char* szMultiByte, char* lpwUnicodeOut, int nOutBufSize );
#endif//WIN32
}


#endif//__MYU_STANDARD_LIBRARY__mslcharset_H__
