#pragma once

#include <string>

namespace StringCodeConverter
{
	using std::string; 
	using std::wstring;

	size_t mbslen( const char *pcszSource );

	wstring mbs2unicode( const string &strSource );
	void mbs2unicode(const string &strSource, wstring &wstrDest);
	void mbs2unicode(const char *pcszSource, wchar_t *pwszDest) throw ( string );

	void mbs2utf8( const string &cstrSource, char *pszDest );

	string unicode2mbs( const wstring &wstrSource );
	void unicode2mbs( const wstring &wstrSource, string &strDest );
	void unicode2mbs( const wchar_t *pwszSource, char *pszDest );
	void unicode2utf8( const wstring &wstrSource, char *pszDest );

	string utf8tombs( const char *pcszSource );
	wstring utf8tounicode( const char *pcszSource );
};

