/***********************************************************

	jconv.dllを利用するためのモジュール

		【2009/01/11 更新】

	●命令/関数一覧
	
	(文字コード変換)
;	#defcfunc sjis_jis		str p1		Shift-JISコードをJISコードに変換
;	#defcfunc sjis_eucjp	str p1		Shift-JISコードをEUC-JPコードに変換
;	#defcfunc sjis_utf8		str p1		Shift-JISコードをUTF-8コードに変換
;	#defcfunc jis_sjis		str p1		JISコードをShift-JISコードに変換
;	#defcfunc jis_eucjp		str p1		JISコードをEUC-JPコードに変換
;	#defcfunc jis_utf8		str p1		JISコードをUTF-8コードに変換
;	#defcfunc eucjp_sjis	str p1		EUC-JPコードをShift-JISコードに変換
;	#defcfunc eucjp_jis		str p1		EUC-JPコードをJISコードに変換
;	#defcfunc eucjp_utf8	str p1		EUC-JPコードをUTF-8コードに変換
;	#defcfunc utf8_sjis		str p1		UTF-8コードをShift-JISコードに変換
;	#defcfunc utf8_jis		str p1		UTF-8コードをJISコードに変換
;	#defcfunc utf8_eucjp	str p1		UTF-8コードをEUC-JPコードに変換
;	#defcfunc to_sjis		str p1		未確認コードをShift-JISコードに変換
;	#defcfunc to_jis		str p1		未確認コードをJISコードに変換
;	#defcfunc to_eucjp		str p1		未確認コードをEUC-JPコードに変換
;	#defcfunc to_utf8		str p1		未確認コードをUTF-8コードに変換

	(jconv.dllの動作を設定)
;	#deffunc jconvopt_sjis_7bit_ascii
		SJISの半角と呼ばれている文字(0x20〜0x7eまでの文字コード)を
		US-ASCIIとします。
;	#deffunc jconvopt_sjis_7bit_jis
		SJISの半角と呼ばれている文字(0x20〜0x7eまでの文字コード)を
		JIS X0201とします。(デフォルト設定)
;	#deffunc jconvopt_eucjp_7bit_ascii
		EUCの半角と呼ばれている文字(0x20〜0x7eまでの文字コード)を
		US-ASCIIとします。(デフォルト設定)
;	#deffunc jconvopt_eucjp_7bit_jis
		EUCの半角と呼ばれている文字(0x20〜0x7eまでの文字コード)を
		JIS X0201とします。

	※ 上記の動作設定命令は、たとえばShift-JISコードの文字列に対して
	  to_sjis関数を使用しただけなのに「\」が「\」に変換されてしまう
	  などの場合に使用して設定を変更することで、不要な変換を抑制でき
	  ることがあります。

***********************************************************/
#ifndef	__GM_JCONV_DLL__
#define	global	__GM_JCONV_DLL__


#module jconv_dll

#uselib	"jconv"
;#func	about_jconv "_about_jconv@4"
#func	jconv "_jconv@20" int,sptr,int,int,sptr	// 文字コード変換
#func	setjconvopt "_setjconvopt@4" int
	// 0x20〜0x7eまでの文字コードをJIS X0201とするのか、US-ASCIIとするのかを調整

/* JC_JCODE_TYPE(jconv関数用) */
#const	JC_AUTO			0
#const	JC_UTF_7		1
#const	JC_ISO2022JP	2
#const	JC_UTF_8		3
#const	JC_SHIFT_JIS	4
#const	JC_EUC_JP		5
#const	JC_UTF_16_B		6
#const	JC_UTF_16_L		7
#const	JC_UCS_4_B		8

#const	TIMES_CONV_LEN	10

/* JC_JCODE_OPT(setjconvopt関数用) */
#const	JO_SJIS_7BIT_ASCII		0
#const	JO_SJIS_7BIT_JIS		1
#const	JO_EUCJP_7BIT_ASCII		2
#const	JO_EUCJP_7BIT_JIS		3


#defcfunc sjis_jis str p1
	gosub *set_prms
	jconv JC_SHIFT_JIS, str_from, len, JC_ISO2022JP, str_to
	return str_to_

#defcfunc jis_sjis str p1
	gosub *set_prms
	jconv JC_ISO2022JP, str_from, len, JC_SHIFT_JIS, str_to
	return str_to_

#defcfunc sjis_eucjp str p1
	gosub *set_prms
	jconv JC_SHIFT_JIS, str_from, len, JC_EUC_JP, str_to
	return str_to_

#defcfunc eucjp_sjis str p1
	gosub *set_prms
	jconv JC_EUC_JP, str_from, len, JC_SHIFT_JIS, str_to
	return str_to_

#defcfunc eucjp_jis str p1
	gosub *set_prms
	jconv JC_EUC_JP, str_from, len, JC_ISO2022JP, str_to
	return str_to_

#defcfunc jis_eucjp str p1
	gosub *set_prms
	jconv JC_ISO2022JP, str_from, len, JC_EUC_JP, str_to
	return str_to_

#defcfunc sjis_utf8 str p1
	gosub *set_prms
	jconv JC_SHIFT_JIS, str_from, len, JC_UTF_8, str_to
	return str_to_

#defcfunc utf8_sjis str p1
	gosub *set_prms
	jconv JC_UTF_8, str_from, len, JC_SHIFT_JIS, str_to
	return str_to_

#defcfunc jis_utf8 str p1
	gosub *set_prms
	jconv JC_ISO2022JP, str_from, len, JC_UTF_8, str_to
	return str_to_

#defcfunc utf8_jis str p1
	gosub *set_prms
	jconv JC_UTF_8, str_from, len, JC_ISO2022JP, str_to
	return str_to_

#defcfunc eucjp_utf8 str p1
	gosub *set_prms
	jconv JC_EUC_JP, str_from, len, JC_UTF_8, str_to
	return str_to_

#defcfunc utf8_eucjp str p1
	gosub *set_prms
	jconv JC_UTF_8, str_from, len, JC_EUC_JP, str_to
	return str_to_

#defcfunc to_sjis str p1
	gosub *set_prms
	jconv JC_AUTO, str_from, len, JC_SHIFT_JIS, str_to
	return str_to_

#defcfunc to_jis str p1
	gosub *set_prms
	jconv JC_AUTO, str_from, len, JC_ISO2022JP, str_to
	return str_to_

#defcfunc to_eucjp str p1
	gosub *set_prms
	jconv JC_AUTO, str_from, len, JC_EUC_JP, str_to
	return str_to_

#defcfunc to_utf8 str p1
	gosub *set_prms
	jconv JC_AUTO, str_from, len, JC_UTF_8, str_to
	return str_to_

*set_prms
	str_from_	= p1
	str_from	= varptr(str_from_)
	len			= strlen(str_from_)
	sdim str_to_, len * TIMES_CONV_LEN + 4
	str_to		= varptr(str_to_)
	return

#deffunc jconvopt_sjis_7bit_ascii
	setjconvopt	JO_SJIS_7BIT_ASCII
	return

#deffunc jconvopt_sjis_7bit_jis
	setjconvopt	JO_SJIS_7BIT_JIS
	return

#deffunc jconvopt_eucjp_7bit_ascii
	setjconvopt	JO_EUCJP_7BIT_ASCII
	return

#deffunc jconvopt_eucjp_7bit_jis
	setjconvopt	JO_EUCJP_7BIT_JIS
	return

#global


#endif