#include "stdafx.h"
#include "wd_def.h"
#include <Windows.h>
#include <memory.h>

extern "C"
{


///////////////函数声明/////////////////////////
void cpy_data_2_data(WD_UINT8 i, lan_keymap_Info_t* data, void* Ime_data);
void copy_languageInfo_2_inner(WD_abcdefg languageInfo[],WD_UINT8 i);
/////////////////函数声明结束/////////////////////////


///////////////编码方式//////////////////
//#define USE_UNICODE			//如果注释掉本行，则为GBK码，打开为UNICODE
////////////////////语言开关////////////////////////

/////客户使用/////////////////////////

	#define WD_DIGIT			//数字输入法//ANDY
//中文
	#define WD_CN_CPINYIN			//纯拼输入法//ANDY
	#define WD_CN_FULLPINYIN		//全字母拼音输入法//ANDY
	#define WD_CN_BIHUA				//笔画输入法//ANDY
//  	#define WD_CN_BIHUAF			//繁体笔画输入法//ANDY
//  	#define	WD_CN_ZHUYIN			//注音输入法//ANDY
//  	#define WD_CN_FULLZHUYIN		//全字母键注音//ANDY

//外文
	//#define WD_WDI_ABC
	#define WD_ENGLISH_ABC				//英文字母输入法
// 	#define	WD_LATIN_ABC				//拉丁语系的字母输入法
// 	#define WD_ARABIC_ABC				//阿拉伯文字母输入法
// 	#define WD_RUSSIAN_ABC				//俄语字母输入法
// 	#define WD_FRENCH_ABC				//法文字母输入法
// 	#define WD_VIETNAMESE_ABC			//越南语字母输入法
// 	#define WD_THAI_ABC					//泰文字母输入法
// 	#define WD_INDONESIAN_ABC			//印度尼西亚字母字母输入法
// 	#define WD_PORTUGUESE_ABC			//葡萄牙文字母输入法
// 	#define WD_GERMAN_ABC				//德文字母输入法
// 	#define WD_SPANISH_ABC				//西班牙文字母输入法
// 	#define WD_MALAY_ABC				//马来语字母输入法
// 	#define WD_PERSIAN_ABC				//波斯语字母输入法
// 	#define WD_TURKISH_ABC				//土耳其语字母输入法
// 	#define WD_ITALIAN_ABC				//意大利语字母输入法
// 	#define WD_HINDI_ABC				//智能印地语字母输入法
// 	#define WD_CZECH_ABC				//字母捷克语
// 	#define WD_DUTCH_ABC				//字母荷兰语
// 	#define WD_HEBREW_ABC				//字母希伯来语
// 	#define WD_POLISH_ABC				//字母波兰语
// 	#define WD_UIGHUR_ABC				//字母维吾尔语
// 	#define WD_SWEDISH_ABC				//字母瑞典语
// 	#define WD_FINNISH_ABC				//字母芬兰语
// 	#define WD_NORWEGIAN_ABC			//字母挪威语
// 	#define WD_DANISH_ABC				//字母丹麦语
// 	#define WD_LAO_ABC					//字母老挝语
// 	#define WD_URDU_ABC					//字母乌尔都语
// 	#define WD_KAZAK_ABC				//字母哈萨克（中国）语
// 	#define WD_ICELANDIC_ABC			//字母冰岛语//ANDY
// 	#define WD_SLOVAK_ABC				//字母斯洛伐克语
// 	#define WD_ESTONIAN_ABC				//字母爱沙尼亚语
// 	#define WD_BELARUSIAN_ABC			//字母白俄罗斯语
// 	#define WD_LATVIAN_ABC				//字母拉脱维亚语
// 	#define WD_SLOVENIAN_ABC			//字母斯洛文尼亚语
//  #define WD_CROATIAN_ABC				//字母克罗地亚语//ANDY

// 	#define WD_SERBIAN_ABC				//字母塞尔维亚语
// 	#define WD_HAUSA_ABC				//字母豪萨语
// 	#define WD_IGBO_ABC					//字母伊博语
// 	#define WD_TURKMEN_ABC				//字母土库曼语
// 	#define WD_SWAHILI_ABC				//字母斯瓦希里语
// 	#define WD_HUNGARIAN_ABC			//字母匈牙利语
// 	#define WD_GREEK_ABC				//字母希腊语
// 	#define WD_KAZAKH_ABC				//字母哈萨克语
// 	#define WD_ROMANIAN_ABC				//字母罗马尼亚语
// 	#define WD_TAGALOG_ABC				//字母他加禄语
// 	#define WD_BOSNIAN_ABC				//字母波斯尼亚语
 //#define WD_TAMIL_ABC				//字母泰米尔语
// 	#define WD_CYRILLIC_ABC				//字母西里尔语系
//  #define WD_SERBIANC_ABC				//字母塞尔维亚(西里尔)
// 	#define WD_BENGALI_ABC		//字母孟加拉语   qls
//	#define WD_KHMER_ABC		//字母高棉语  qls
// 	#define WD_NEPALI_ABC		//字母尼泊尔语  qls
// 	#define WD_UKRAINIAN_ABC	//字母乌克兰语
// 	#define WD_BULGARIAN_ABC	//字母保加利亚语
// 	#define WD_CHOSEN_ABC		//字母朝鲜语
// 	#define	WD_MIAO_ABC			//字母苗语
// 	#define WD_MONGOLIAN_TRADITIONAL_ABC	//传统字母蒙古语
// 	#define	WD_MONGOLIAN_ABC	//字母蒙古语
// 	#define WD_GEORGIAN_ABC	//字母格鲁吉亚
//  #define WD_TELUGU_ABC		//字母泰卢固语	
	
// 	#define WD_BURMESE_ABC			  //字母缅甸语					
// 	#define	WD_MARATHI_ABC			  //字母马拉地语
// 	#define	WD_KANNADA_ABC			  //字母坎纳达语
// 	#define	WD_ASSAMESE_ABC		  //字母阿萨姆语
// 	#define	WD_MALAYALAM_ABC		  //字母马拉雅拉姆语
// 	#define	WD_PUNJABI_ABC			  //字母旁遮普语
// 	#define	WD_MAITHILI_ABC		  //字母迈蒂利语
// 	#define	WD_GUJARATI_ABC		  //字母古吉拉特语
// 	#define	WD_IRISH_ABC			  //字母爱尔兰语
// 	#define	WD_CATALAN_ABC			  //字母加泰隆语
// 	#define	WD_AZERBAIJANI_ABC		  //字母阿塞拜疆语
//		#define WD_PASHTO_ABC				//字母普什图语

//#define WD_JAVANESE_ABC //爪哇语
//#define WD_MOROCCAN_ABC //摩洛哥语
//#define WD_TUNISIAN_ABC//突尼斯语
//#define WD_SUDANESE_ABC     //苏丹语
//#define WD_PAKISTAN_ABC    //巴基斯坦语
//#define WD_SINHALESE_ABC  //僧伽罗语
//#define WD_MACEDONIAN_ABC    //马其顿语
//#define WD_KINYARWANDA_ABC  //卢旺达语
//#define WD_ZULU_ABC    		    //祖鲁语
//#define WD_TATAR_ABC    	    //鞑靼语
//#define WD_YEMENI_ABC     //也门语
//#define WD_BHUTANI_ABC      //不丹语
//#define WD_FIJIAN_ABC    	  //斐济语
//#define WD_KONGO_ABC    		   //刚果语
//#define WD_SYRIAC_ABC       //叙利亚语
//#define WD_ALGERIAN_ABC      //阿尔及利亚语
//#define WD_MALTESE_ABC       //马耳他语
//#define WD_WELSH_ABC    	  //威尔士语
//#define WD_MALDIVIAN_ABC      //马尔代夫语
//#define WD_LITHUANIAN_ABC    //立陶宛语

//智能
// 	#define WD_HUNGARIAN			//匈牙利语智能
	#define WD_ENGLISH				//英文智能输入法
// 	#define WD_FRENCH				//法文智能输入法
//  #define WD_HEBREW				//希伯来语智能输入法
//   #define WD_RUSSIAN				//俄语智能输入法
// 	#define WD_ARABIC				//阿拉伯文智能输入法
//  #define	WD_THAI					//泰文智能输入法
//   #define WD_VIETNAMESE			//越南语智能输入法
// 	#define WD_ITALIAN				//意大利语
//  #define WD_DANISH				//丹麦语智能输入法
//  #define	WD_SWEDISH				//智能瑞典语
// 	#define WD_NORWEGIAN			//智能挪威语

// 	#define WD_PORTUGUESE			//葡萄牙文输入法
// 	#define WD_SPANISH				//西班牙文输入法
// 	#define WD_HINDI				//智能印地语
// 	#define WD_MALAY				//智能马来语
//	#define WD_KOREAN				//韩语输入法
//	#define WD_JAPANESE				//日语输入法
//	#define WD_CZECH				//捷克语
// 	#define WD_POLISH				//波兰语                
// 	#define WD_TURKISH				//智能土耳其语
// 	#define WD_GERMAN				//智能德语
//	#define WD_PERSIAN				//波斯语
//	#define WD_LAO				    //老挝
//  #define WD_TAGALOG			    //他加禄语
// 	 #define WD_INDONESIAN			//印度尼西亚语
//	#define WD_UKRAINIAN			//乌克兰语
// 	#define WD_DUTCH				//智能荷兰语
//	#define WD_GREEK				//智能希腊语
//	#define WD_URDU					//乌耳都语
//  #define WD_KAZAKH				//智能哈萨克语	
//  #define  WD_BENGALI    //智能孟加拉语 
//	#define WD_KHMER			//智能高棉语  qls
//	#define WD_BURMESE			//智能缅甸语
// 	#define WD_NEPALI			//智能尼泊尔语  qls

// 	#define WD_ROMANIAN
// 	#define WD_SLOVENIAN	
// 	#define WD_TELUGU		//智能泰卢固语
// 	#define WD_BULGARIAN	//智能保加利亚语
// 	#define WD_GEORGIAN		//智能格鲁吉亚
// 	#define WD_ESTONIAN		//智能爱沙尼亚语

 //	#define WD_ICELANDIC	//智能冰岛语//ANDY

// 	#define	WD_FINNISH		//智能芬兰语
// 	#define	WD_BELARUSIAN	//智能白俄罗斯语
// 	#define WD_SERBIAN		//智能赛尔维亚语
// 	#define	WD_SLOVAK		//智能斯洛伐克语
	//#define WD_TAMIL		//智能泰米尔语
// 	#define	WD_TURKMEN		//智能土库曼语
// 	#define WD_CHOSEN		//智能朝鲜语
// 	#define	WD_MONGOLIAN	//智能蒙古语
// 	#define WD_SWAHILI		//智能斯瓦西里
// 
// #define	WD_MARATHI			//智能马拉地语
// #define	WD_KANNADA			//智能坎纳达语
// #define	WD_ASSAMESE			//智能阿萨姆语
// #define	WD_MALAYALAM		//智能马拉雅拉姆语
// #define	WD_PUNJABI			//智能旁遮普语
// #define	WD_MAITHILI			//智能迈蒂利语
// #define	WD_GUJARATI			//智能古吉拉特语
// #define  WD_SERBIANC			//智能塞尔维亚西里尔
// #define  WD_BOSNIAN			//波斯尼亚语智能输入法
// #define  WD_IRISH			//爱尔兰语智能输入法
// #define  WD_AZERBAIJANI		//阿塞拜疆语智能输入法
// #define  WD_IGBO				//伊博语
// #define  WD_HAUSA			//豪萨语
// #define  WD_LATVIAN			//拉脱维亚语// 
//#define  WD_CROATIAN			//克罗地亚语//ANDY
//	 #define WD_PASHTO			//智能普什图语
//#define WD_LITHUANIAN          //智能立陶宛语


//少数民族语言
// 	#define WD_YI				//少数民族语言：彝语
//	#define WD_CNOSEN				//少数民族语言：朝鲜语
//	#define WD_TIBETAN				//少数民族语言：藏语wanghui
//	#define WD_TIBETAN_ABC			//藏语字母输入法 qls
// 	#define WD_UIGHUR				//少数民族语言：维语
// 	#define WD_MIAO					//少数民族语言：苗语
// 	#define WD_ZHUANG				//少数民族语言：壮语
// 	#define WD_DONG					//少数民族语言：侗语
// 	#define WD_KAZAK				//智能哈萨克语(中国)		
// 	#define WD_MONGOLIAN_TRADITIONAL		//少数民族语言：蒙古语
// 	#define WD_DEHONG_DAI			//少数民族语言：傣语
	//#define WD_UIGHUR //智能维吾尔语

//#define WD_JAVANESE //爪哇语
//#define WD_MOROCCAN //摩洛哥语
//#define WD_TUNISIAN//突尼斯语
//#define WD_SUDANESE     //苏丹语
//#define WD_PAKISTAN    //巴基斯坦语
//#define WD_SINHALESE  //僧伽罗语
//#define WD_MACEDONIAN    //马其顿语
//#define WD_KINYARWANDA  //卢旺达语
//#define WD_ZULU    		    //祖鲁语
//#define WD_TATAR    	    //鞑靼语
//#define WD_YEMENI     //也门语
//#define WD_BHUTANI      //不丹语
//#define WD_FIJIAN    	  //斐济语
//#define WD_KONGO    		   //刚果语
//#define WD_SYRIAC       //叙利亚语
//#define WD_ALGERIAN      //阿尔及利亚语
//#define WD_MALTESE       //马耳他语
//#define WD_WELSH    	  //威尔士语
//#define WD_MALDIVIAN      //马尔代夫语

WD_abcdefg	languageInfo[WD_IME_TOTAL]={0};

	
WD_UINT8 IsLanguageExist(WD_UINT8 languageType,WD_UINT8* exist,WD_UINT8 type)
{
	WD_UINT8 existTemp[64]={0},bit,existNum;
	
	memcpy(existTemp,exist,64*sizeof(WD_UINT8));
	bit=languageType%4;
	existNum=languageType/4;
	
	if (type==1)
	{
		switch(bit)
		{
		case 0:
			existTemp[existNum]+=1;
			break;	
		case 1:
			existTemp[existNum]+=2;
			break;
		case 2:
			existTemp[existNum]+=4;
			break;
		case 3:
			existTemp[existNum]+=8;
			break;
		}
		memcpy(exist,existTemp,64*sizeof(WD_UINT8));
		return 3;//语言已定义
	}
	else
	{
		if ((existTemp[existNum] >>bit)&1)
		{
			return 1;//语言存在
		}
		else
		{
			return 0;//语言不存在
		}
	}
	
}
	
void ImeCopy(WD_UINT8* exist)
{
	WD_UINT8  i = 0;  //用于获取输入法个数
	WD_UINT8 existTemp[64]={0};
	memset(&languageInfo , 0, sizeof(languageInfo));



{//数字
#ifdef WD_DIGIT
	languageInfo[i].imeType = WDI_DIGIT;
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
#ifdef USE_UNICODE
	languageInfo[i].imeString[0] = 0x6570;
	languageInfo[i].imeString[1] = 0x5B57;
#else
	memcpy(languageInfo[i].imeString , "数字", sizeof(languageInfo[i].imeString));
#endif
	i++;
	if(i>=WD_IME_TOTAL)goto end;
#endif
}


//纯拼音
#ifdef WD_CN_CPINYIN
{
	languageInfo[i].imeType = WDI_CN_CPINYIN;
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);

#ifdef USE_UNICODE
	languageInfo[i].imeString[0] = 0x7EAF;
	languageInfo[i].imeString[1] = 0x62FC;
#else
	memcpy(languageInfo[i].imeString , "纯拼", sizeof(languageInfo[i].imeString));
#endif
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif


//重复键拼音
#ifdef WD_CN_FULLPINYIN
{
	languageInfo[i].imeType = WDI_CN_FULLPINYIN;
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);

#ifdef USE_UNICODE
	languageInfo[i].imeString[0] = 0x5168;
	languageInfo[i].imeString[1] = 0x62fc;
#else
	memcpy(languageInfo[i].imeString , "全拼", sizeof(languageInfo[i].imeString));
#endif
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//台湾注音
#ifdef WD_CN_ZHUYIN
{
	languageInfo[i].imeType = WDI_CN_ZHUYIN;
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);

#ifdef USE_UNICODE
	languageInfo[i].imeString[0] = 0x6CE8;
	languageInfo[i].imeString[1] = 0x97F3;
#else
	memcpy(languageInfo[i].imeString , "注音", sizeof(languageInfo[i].imeString));
#endif
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//笔划USE_WDI_CN_BIHUA
#ifdef WD_CN_BIHUA
{
	languageInfo[i].imeType = WDI_CN_BIHUA;
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);

#ifdef USE_UNICODE
	languageInfo[i].imeString[0] = 0x7B14;
	languageInfo[i].imeString[1] = 0x5212;
#else
	memcpy(languageInfo[i].imeString , "笔划", sizeof(languageInfo[i].imeString));
#endif
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif


//笔划繁体
#ifdef WD_CN_BIHUAF
{
	languageInfo[i].imeType = WDI_CN_BIHUAF;
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);

#ifdef USE_UNICODE
	languageInfo[i].imeString[0] = 0x7B46;
	languageInfo[i].imeString[1] = 0x756B;
#else
	memcpy(languageInfo[i].imeString , "筆畫", sizeof(languageInfo[i].imeString));
#endif
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif


//台湾注音
#ifdef WD_CN_FULLZHUYIN
{
	languageInfo[i].imeType = WDI_CN_FULLZHUYIN;
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);

#ifdef USE_UNICODE
	languageInfo[i].imeString[0] = 0x5168;
	languageInfo[i].imeString[1] = 0x6CE8;
#else
	memcpy(languageInfo[i].imeString , "全注", sizeof(languageInfo[i].imeString));
#endif
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//ABC
#ifdef WD_ENGLISH_ABC
{
	extern lan_keymap_Info_t English_ABC_keymap_Info;
	cpy_data_2_data(i, &English_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif

//LA DING ABC
#ifdef WD_LATIN_ABC
{
	extern lan_keymap_Info_t Latin_ABC_keymap_Info;
	cpy_data_2_data(i, &Latin_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);

	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//俄语字母输入法
#ifdef WD_RUSSIAN_ABC
{
	extern lan_keymap_Info_t Russian_ABC_keymap_Info;
	cpy_data_2_data(i, &Russian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);

	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//法语字母输入法
#ifdef WD_FRENCH_ABC
{
	extern lan_keymap_Info_t French_ABC_keymap_Info;
	cpy_data_2_data(i, &French_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);

	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
	
//越南语字母输入法
#ifdef WD_VIETNAMESE_ABC
{
	extern lan_keymap_Info_t Vietnamese_ABC_keymap_Info;
	cpy_data_2_data(i, &Vietnamese_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);

	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//泰语字母输入法
#ifdef WD_THAI_ABC
{
	extern lan_keymap_Info_t Thai_ABC_keymap_Info;
	cpy_data_2_data(i, &Thai_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//印尼语字母输入法
#ifdef WD_INDONESIAN_ABC
{
	extern lan_keymap_Info_t Indonesian_ABC_keymap_Info;
	cpy_data_2_data(i, &Indonesian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//葡萄牙语字母输入法
#ifdef WD_PORTUGUESE_ABC
{
	extern lan_keymap_Info_t Portuguese_ABC_keymap_Info;
	cpy_data_2_data(i, &Portuguese_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif


	//字母阿拉伯语
#ifdef WD_ARABIC_ABC
{
	extern lan_keymap_Info_t Arabic_ABC_keymap_Info;
	cpy_data_2_data(i, &Arabic_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
	
	//字母德语
#ifdef WD_GERMAN_ABC
{
	extern lan_keymap_Info_t German_ABC_keymap_Info;
	cpy_data_2_data(i, &German_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母印地语
#ifdef WD_HINDI_ABC
{
	extern lan_keymap_Info_t Hindi_ABC_keymap_Info;
	cpy_data_2_data(i, &Hindi_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母意大利语
#ifdef WD_ITALIAN_ABC
{
	extern lan_keymap_Info_t Italian_ABC_keymap_Info;
	cpy_data_2_data(i, &Italian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母马来语
#ifdef WD_MALAY_ABC
{
	extern lan_keymap_Info_t Malay_ABC_keymap_Info;
	cpy_data_2_data(i, &Malay_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母波斯语
#ifdef WD_PERSIAN_ABC
{
	extern lan_keymap_Info_t Persian_ABC_keymap_Info;
	cpy_data_2_data(i, &Persian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母西班牙语
#ifdef WD_SPANISH_ABC
{
	extern lan_keymap_Info_t Spanish_ABC_keymap_Info;
	cpy_data_2_data(i, &Spanish_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母西班牙语
#ifdef WD_TURKISH_ABC
{
	extern lan_keymap_Info_t Turkish_ABC_keymap_Info;
	cpy_data_2_data(i, &Turkish_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母捷克语
#ifdef WD_CZECH_ABC
{
	extern lan_keymap_Info_t Czech_ABC_keymap_Info;
	cpy_data_2_data(i, &Czech_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母荷兰语
#ifdef WD_DUTCH_ABC
{
	extern lan_keymap_Info_t Dutch_ABC_keymap_Info;
	cpy_data_2_data(i, &Dutch_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母希伯来语
#ifdef WD_HEBREW_ABC
{
	extern lan_keymap_Info_t Hebrew_ABC_keymap_Info;
	cpy_data_2_data(i, &Hebrew_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母波兰语
#ifdef WD_POLISH_ABC
{
	extern lan_keymap_Info_t Polish_ABC_keymap_Info;
	cpy_data_2_data(i, &Polish_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母维吾尔语
#ifdef WD_UIGHUR_ABC
{
	extern lan_keymap_Info_t Uighur_ABC_keymap_Info;
	cpy_data_2_data(i, &Uighur_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif	

	//字母瑞典语
#ifdef WD_SWEDISH_ABC
{
	extern lan_keymap_Info_t Swedish_ABC_keymap_Info;
	cpy_data_2_data(i, &Swedish_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif	

	//字母芬兰语
#ifdef WD_FINNISH_ABC
{
	extern lan_keymap_Info_t Finnish_ABC_keymap_Info;
	cpy_data_2_data(i, &Finnish_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母挪威语
#ifdef WD_NORWEGIAN_ABC
{
	extern lan_keymap_Info_t Norwegian_ABC_keymap_Info;
	cpy_data_2_data(i, &Norwegian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母丹麦语
#ifdef WD_DANISH_ABC
{
	extern lan_keymap_Info_t Danish_ABC_keymap_Info;
	cpy_data_2_data(i, &Danish_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母老挝语
#ifdef WD_LAO_ABC
{
	extern lan_keymap_Info_t Lao_ABC_keymap_Info;
	cpy_data_2_data(i, &Lao_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母乌尔都语
#ifdef WD_URDU_ABC
{
	extern lan_keymap_Info_t Urdu_ABC_keymap_Info;
	cpy_data_2_data(i, &Urdu_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母哈萨克语(中国)
#ifdef WD_KAZAK_ABC
{
	extern lan_keymap_Info_t Kazak_ABC_keymap_Info;
	cpy_data_2_data(i, &Kazak_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母冰岛语
#ifdef WD_ICELANDIC_ABC
{
	extern lan_keymap_Info_t Icelandic_ABC_keymap_Info;//ANDY
	cpy_data_2_data(i, &Icelandic_ABC_keymap_Info, 0);//ANDY
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母斯洛伐克语
#ifdef WD_SLOVAK_ABC
{
	extern lan_keymap_Info_t Slovak_ABC_keymap_Info;
	cpy_data_2_data(i, &Slovak_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母爱沙尼亚语
#ifdef WD_ESTONIAN_ABC
{
	extern lan_keymap_Info_t Estonian_ABC_keymap_Info;
	cpy_data_2_data(i, &Estonian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif


	//字母白俄罗斯语
#ifdef WD_BELARUSIAN_ABC
{
	extern lan_keymap_Info_t Belarusian_ABC_keymap_Info;
	cpy_data_2_data(i, &Belarusian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母拉脱维亚语
#ifdef WD_LATVIAN_ABC
{
	extern lan_keymap_Info_t Latvian_ABC_keymap_Info;
	cpy_data_2_data(i, &Latvian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母斯洛文尼亚语
#ifdef WD_SLOVENIAN_ABC
{
	extern lan_keymap_Info_t Slovenian_ABC_keymap_Info;
	cpy_data_2_data(i, &Slovenian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母克罗地亚语
#ifdef WD_CROATIAN_ABC
{
	extern lan_keymap_Info_t Croatian_ABC_keymap_Info;
	cpy_data_2_data(i, &Croatian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母塞尔维亚语
#ifdef WD_SERBIAN_ABC
{
	extern lan_keymap_Info_t Serbian_ABC_keymap_Info;
	cpy_data_2_data(i, &Serbian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母豪萨语
#ifdef WD_HAUSA_ABC
{
	extern lan_keymap_Info_t Hausa_ABC_keymap_Info;
	cpy_data_2_data(i, &Hausa_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母伊博语
#ifdef WD_IGBO_ABC
{
	extern lan_keymap_Info_t Igbo_ABC_keymap_Info;
	cpy_data_2_data(i, &Igbo_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母土库曼语
#ifdef WD_TURKMEN_ABC
{
	extern lan_keymap_Info_t Turkmen_ABC_keymap_Info;
	cpy_data_2_data(i, &Turkmen_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母斯瓦希里语
#ifdef WD_SWAHILI_ABC
{
	extern lan_keymap_Info_t Swahili_ABC_keymap_Info;
	cpy_data_2_data(i, &Swahili_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母匈牙利语
#ifdef WD_HUNGARIAN_ABC
{
	extern lan_keymap_Info_t Hungarian_ABC_keymap_Info;
	cpy_data_2_data(i, &Hungarian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母希腊语
#ifdef WD_GREEK_ABC
{
	extern lan_keymap_Info_t Greek_ABC_keymap_Info;
	cpy_data_2_data(i, &Greek_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

		//字母哈萨克语
#ifdef WD_KAZAKH_ABC
{
	extern lan_keymap_Info_t Kazakh_ABC_keymap_Info;
	cpy_data_2_data(i, &Kazakh_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
	
	
	//字母罗马尼亚语
#ifdef WD_ROMANIAN_ABC
{
	extern lan_keymap_Info_t Romanian_ABC_keymap_Info;
	cpy_data_2_data(i, &Romanian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母他加禄语
#ifdef WD_TAGALOG_ABC
{
	extern lan_keymap_Info_t Tagalog_ABC_keymap_Info;
	cpy_data_2_data(i, &Tagalog_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
	//字母波斯尼亚语
#ifdef WD_BOSNIAN_ABC
{
	extern lan_keymap_Info_t Bosnian_ABC_keymap_Info;
	cpy_data_2_data(i, &Bosnian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母泰米尔语wanghui
#ifdef WD_TAMIL_ABC
{
	extern lan_keymap_Info_t Tamil_ABC_keymap_Info;
	cpy_data_2_data(i, &Tamil_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母西里尔语wanghui
#ifdef WD_CYRILLIC_ABC
{
	extern lan_keymap_Info_t Cyrillic_ABC_keymap_Info;
	cpy_data_2_data(i, &Cyrillic_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//字母塞尔维亚(西里尔语)wanghui
#ifdef WD_SERBIANC_ABC
{
	extern lan_keymap_Info_t Serbianc_ABC_keymap_Info;
	cpy_data_2_data(i, &Serbianc_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_TELUGU_ABC			//泰卢固语字母输入法
{
	extern lan_keymap_Info_t Telugu_ABC_keymap_Info;
	cpy_data_2_data(i, &Telugu_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_BULGARIAN_ABC		/* 保加利亚语字母				*/
{
	extern lan_keymap_Info_t Bulgarian_ABC_keymap_Info;
	cpy_data_2_data(i, &Bulgarian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_BENGALI_ABC		// 孟加拉语字母输入法qls
{
	extern lan_keymap_Info_t Bengali_ABC_keymap_Info;
	cpy_data_2_data(i, &Bengali_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_UKRAINIAN_ABC
{
	extern lan_keymap_Info_t Ukrainian_ABC_keymap_Info;
	cpy_data_2_data(i, &Ukrainian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;

}
#endif
#ifdef WD_KHMER_ABC		//字母高棉语  qls
{
	extern lan_keymap_Info_t Khmer_ABC_keymap_Info;
	cpy_data_2_data(i, &Khmer_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_NEPALI_ABC		//字母尼泊尔语  qls
{
	extern lan_keymap_Info_t Nepali_ABC_keymap_Info;
	cpy_data_2_data(i, &Nepali_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_CHOSEN_ABC		//字母朝鲜语
{
	extern lan_keymap_Info_t Chosen_ABC_keymap_Info;
	cpy_data_2_data(i, &Chosen_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_MIAO_ABC			//字母苗语
{
	extern lan_keymap_Info_t Miao_ABC_keymap_Info;
	cpy_data_2_data(i, &Miao_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_MONGOLIAN_TRADITIONAL_ABC	//传统字母蒙古语
{
	extern lan_keymap_Info_t Mongolian_Traditional_ABC_keymap_Info;
	cpy_data_2_data(i, &Mongolian_Traditional_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_MONGOLIAN_ABC	//字母蒙古语
{
	extern lan_keymap_Info_t Mongolian_ABC_keymap_Info;
	cpy_data_2_data(i, &Mongolian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_GEORGIAN_ABC	//字母格鲁吉亚
{
	extern lan_keymap_Info_t Georgian_ABC_keymap_Info;
	cpy_data_2_data(i, &Georgian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif

#ifdef WD_BURMESE_ABC	//字母缅甸
{
	extern lan_keymap_Info_t Burmese_ABC_keymap_Info;
	cpy_data_2_data(i, &Burmese_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_MARATHI_ABC	//字母马拉地
{
	extern lan_keymap_Info_t Marathi_ABC_keymap_Info;
	cpy_data_2_data(i, &Marathi_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_KANNADA_ABC	//字母坎纳达
{
	extern lan_keymap_Info_t Kannada_ABC_keymap_Info;
	cpy_data_2_data(i, &Kannada_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif

#ifdef WD_ASSAMESE_ABC	//字母阿萨姆
{
	extern lan_keymap_Info_t Assamese_ABC_keymap_Info;
	cpy_data_2_data(i, &Assamese_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_MALAYALAM_ABC	//字母马拉亚拉姆
{
	extern lan_keymap_Info_t Malayalam_ABC_keymap_Info;
	cpy_data_2_data(i, &Malayalam_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif

#ifdef WD_PUNJABI_ABC	//字母旁遮普
{
	extern lan_keymap_Info_t Punjabi_ABC_keymap_Info;
	cpy_data_2_data(i, &Punjabi_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_MAITHILI_ABC	//字母迈蒂利
{
	extern lan_keymap_Info_t Maithiti_ABC_keymap_Info;
	cpy_data_2_data(i, &Maithiti_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif

#ifdef WD_GUJARATI_ABC	//字母古吉拉特
{
	extern lan_keymap_Info_t Gujarati_ABC_keymap_Info;
	cpy_data_2_data(i, &Gujarati_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_IRISH_ABC	//字母爱尔兰
{
	extern lan_keymap_Info_t Irish_ABC_keymap_Info;
	cpy_data_2_data(i, &Irish_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif

#ifdef WD_CATALAN_ABC	//字母加泰隆
{
	extern lan_keymap_Info_t Catalan_ABC_keymap_Info;
	cpy_data_2_data(i, &Catalan_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif

#ifdef WD_AZERBAIJANI_ABC	//字母加泰隆
{
	extern lan_keymap_Info_t Azerbaijani_ABC_keymap_Info;
	cpy_data_2_data(i, &Azerbaijani_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif

				
#ifdef WD_PASHTO_ABC	//字母普什图语
{
	extern lan_keymap_Info_t Pashto_ABC_keymap_Info;
	cpy_data_2_data(i, &Pashto_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif


#ifdef WD_PASHTO	//智能普什图语
{
	extern lan_ddd Pashto_Ime_Data;
	extern lan_keymap_Info_t Pashto_keymap_Info;
	cpy_data_2_data(i, &Pashto_keymap_Info, &Pashto_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif

#ifdef WD_JAVANESE_ABC //字母爪哇语
{
	extern lan_keymap_Info_t Javanese_ABC_keymap_Info;
	cpy_data_2_data(i, &Javanese_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_MOROCCAN_ABC //字母摩洛哥语
{
	extern lan_keymap_Info_t Moroccan_ABC_keymap_Info;
	cpy_data_2_data(i, &Moroccan_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_TUNISIAN_ABC//字母突尼斯语
{
	extern lan_keymap_Info_t Tunisian_ABC_keymap_Info;
	cpy_data_2_data(i, &Tunisian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_SUDANESE_ABC     //字母苏丹语
{
	extern lan_keymap_Info_t Sudanese_ABC_keymap_Info;
	cpy_data_2_data(i, &Sudanese_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_PAKISTAN_ABC    //字母巴基斯坦语
{
	extern lan_keymap_Info_t Pakistan_ABC_keymap_Info;
	cpy_data_2_data(i, &Pakistan_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_SINHALESE_ABC  //字母僧伽罗语
{
	extern lan_keymap_Info_t Sinhalese_ABC_keymap_Info;
	cpy_data_2_data(i, &Sinhalese_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_MACEDONIAN_ABC    //字母马其顿语
{
	extern lan_keymap_Info_t Macedonian_ABC_keymap_Info;
	cpy_data_2_data(i, &Macedonian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_KINYARWANDA_ABC  //字母卢旺达语
{
	extern lan_keymap_Info_t Kinyarwanda_ABC_keymap_Info;
	cpy_data_2_data(i, &Kinyarwanda_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_ZULU_ABC    		    //字母祖鲁语
{
	extern lan_keymap_Info_t Zulu_ABC_keymap_Info;
	cpy_data_2_data(i, &Zulu_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_TATAR_ABC    	    //字母鞑靼语
{
	extern lan_keymap_Info_t Tatar_ABC_keymap_Info;
	cpy_data_2_data(i, &Tatar_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_YEMENI_ABC     //字母也门语
{
	extern lan_keymap_Info_t Yemeni_ABC_keymap_Info;
	cpy_data_2_data(i, &Yemeni_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_BHUTANI_ABC      //字母不丹语
{
	extern lan_keymap_Info_t Bhutani_ABC_keymap_Info;
	cpy_data_2_data(i, &Bhutani_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_FIJIAN_ABC    	  //字母斐济语
{
	extern lan_keymap_Info_t Fijian_ABC_keymap_Info;
	cpy_data_2_data(i, &Fijian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_KONGO_ABC    		   //字母刚果语
{
	extern lan_keymap_Info_t Kongo_ABC_keymap_Info;
	cpy_data_2_data(i, &Kongo_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_SYRIAC_ABC       //字母叙利亚语
{
	extern lan_keymap_Info_t Syriac_ABC_keymap_Info;
	cpy_data_2_data(i, &Syriac_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_ALGERIAN_ABC      //字母阿尔及利亚语
{
	extern lan_keymap_Info_t Algerian_ABC_keymap_Info;
	cpy_data_2_data(i, &Algerian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_MALTESE_ABC       //字母马耳他语
{
	extern lan_keymap_Info_t Maltese_ABC_keymap_Info;
	cpy_data_2_data(i, &Maltese_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_WELSH_ABC    	  //字母威尔士语
{
	extern lan_keymap_Info_t Welsh_ABC_keymap_Info;
	cpy_data_2_data(i, &Welsh_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_MALDIVIAN_ABC      //字母马尔代夫语
{
	extern lan_keymap_Info_t Maldivian_ABC_keymap_Info;
	cpy_data_2_data(i, &Maldivian_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_LITHUANIAN_ABC  //字母立陶宛语
{
	extern lan_keymap_Info_t Lithuanian_ABC_keymap_Info;
	cpy_data_2_data(i,&Lithuanian_ABC_keymap_Info,0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_JAVANESE //智能爪哇语
{
	extern lan_ddd Javanese_Ime_Data;
	extern lan_keymap_Info_t Javanese_keymap_Info;
	cpy_data_2_data(i, &Javanese_keymap_Info, &Javanese_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_MOROCCAN //智能摩洛哥语
{
	extern lan_ddd Moroccan_Ime_Data;
	extern lan_keymap_Info_t Moroccan_keymap_Info;
	cpy_data_2_data(i, &Moroccan_keymap_Info, &Moroccan_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_TUNISIAN//智能突尼斯语
{
	extern lan_ddd Tunisian_Ime_Data;
	extern lan_keymap_Info_t Tunisian_keymap_Info;
	cpy_data_2_data(i, &Tunisian_keymap_Info, &Tunisian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_SUDANESE     //智能苏丹语
{
	extern lan_ddd Sudanese_Ime_Data;
	extern lan_keymap_Info_t Sudanese_keymap_Info;
	cpy_data_2_data(i, &Sudanese_keymap_Info, &Sudanese_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_PAKISTAN    //智能巴基斯坦语
{
	extern lan_ddd Pakistan_Ime_Data;
	extern lan_keymap_Info_t Pakistan_keymap_Info;
	cpy_data_2_data(i, &Pakistan_keymap_Info, &Pakistan_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_SINHALESE  //智能僧伽罗语
{
	extern lan_ddd Sinhalese_Ime_Data;
	extern lan_keymap_Info_t Sinhalese_keymap_Info;
	cpy_data_2_data(i, &Sinhalese_keymap_Info, &Sinhalese_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_MACEDONIAN    //智能马其顿语
{
	extern lan_ddd Macedonian_Ime_Data;
	extern lan_keymap_Info_t Macedonian_keymap_Info;
	cpy_data_2_data(i, &Macedonian_keymap_Info, &Macedonian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_KINYARWANDA  //智能卢旺达语
{
	extern lan_ddd Kinyarwanda_Ime_Data;
	extern lan_keymap_Info_t Kinyarwanda_keymap_Info;
	cpy_data_2_data(i, &Kinyarwanda_keymap_Info, &Kinyarwanda_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_ZULU    		    //智能祖鲁语
{
	extern lan_ddd Zulu_Ime_Data;
	extern lan_keymap_Info_t Zulu_keymap_Info;
	cpy_data_2_data(i, &Zulu_keymap_Info, &Zulu_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_TATAR    	    //智能鞑靼语
{
	extern lan_ddd Tatar_Ime_Data;
	extern lan_keymap_Info_t Tatar_keymap_Info;
	cpy_data_2_data(i, &Tatar_keymap_Info, &Tatar_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_YEMENI     //智能也门语
{
	extern lan_ddd Yemeni_Ime_Data;
	extern lan_keymap_Info_t Yemeni_keymap_Info;
	cpy_data_2_data(i, &Yemeni_keymap_Info, &Yemeni_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_BHUTANI      //智能不丹语
{
	extern lan_ddd Bhutani_Ime_Data;
	extern lan_keymap_Info_t Bhutani_keymap_Info;
	cpy_data_2_data(i, &Bhutani_keymap_Info, &Bhutani_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_FIJIAN    	  //智能斐济语
{
	extern lan_ddd Fijian_Ime_Data;
	extern lan_keymap_Info_t Fijian_keymap_Info;
	cpy_data_2_data(i, &Fijian_keymap_Info, &Fijian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_KONGO    		   //智能刚果语
{
	extern lan_ddd Kongo_Ime_Data;
	extern lan_keymap_Info_t Kongo_keymap_Info;
	cpy_data_2_data(i, &Kongo_keymap_Info, &Kongo_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_SYRIAC       //智能叙利亚语
{
	extern lan_ddd Syriac_Ime_Data;
	extern lan_keymap_Info_t Syriac_keymap_Info;
	cpy_data_2_data(i, &Syriac_keymap_Info, &Syriac_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_ALGERIAN      //智能阿尔及利亚语
{
	extern lan_ddd Algerian_Ime_Data;
	extern lan_keymap_Info_t Algerian_keymap_Info;
	cpy_data_2_data(i, &Algerian_keymap_Info, &Algerian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_MALTESE       //智能马耳他语
{
	extern lan_ddd Maltese_Ime_Data;
	extern lan_keymap_Info_t Maltese_keymap_Info;
	cpy_data_2_data(i, &Maltese_keymap_Info, &Maltese_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_WELSH    	  //智能威尔士语
{
	extern lan_ddd Welsh_Ime_Data;
	extern lan_keymap_Info_t Welsh_keymap_Info;
	cpy_data_2_data(i, &Welsh_keymap_Info, &Welsh_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif
#ifdef WD_MALDIVIAN      //智能马尔代夫语
{
	extern lan_ddd Maldivian_Ime_Data;
	extern lan_keymap_Info_t Maldivian_keymap_Info;
	cpy_data_2_data(i, &Maldivian_keymap_Info, &Maldivian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
	
}
#endif

//智能维吾尔语
#ifdef WD_UIGHUR/*_ABC*///change by wanghui
{
	extern lan_ddd Uighur_Ime_Data;
	extern lan_keymap_Info_t Uighur_keymap_Info;
	cpy_data_2_data(i, &Uighur_keymap_Info, &Uighur_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//智能藏语
#ifdef WD_TIBETAN
{
	extern lan_ddd Tibetan_Ime_Data;
	extern lan_keymap_Info_t Tibetan_keymap_Info;
	cpy_data_2_data(i, &Tibetan_keymap_Info, &Tibetan_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//字母藏语
#ifdef WD_TIBETAN_ABC
{
	extern lan_keymap_Info_t Tibetan_ABC_keymap_Info;
	cpy_data_2_data(i, &Tibetan_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//智能彝语
#ifdef WD_YI
{
	extern lan_ddd Yi_Ime_Data;
	extern lan_keymap_Info_t Yi_keymap_Info;
	cpy_data_2_data(i, &Yi_keymap_Info, &Yi_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
	
#endif

	//匈牙利语
#ifdef WD_HUNGARIAN
{
	extern lan_ddd Hungarian_Ime_Data;
	extern lan_keymap_Info_t Hungarian_keymap_Info;
	cpy_data_2_data(i, &Hungarian_keymap_Info, &Hungarian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//字母蒙语
#ifdef WD_MONGAL_ABC
{
	extern lan_keymap_Info_t Mongal_ABC_keymap_Info;
	cpy_data_2_data(i, &Mongal_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}

#endif
// 乌耳都语
#ifdef WD_URDU
{
	extern lan_ddd Urdu_Ime_Data;
	extern lan_keymap_Info_t Urdu_keymap_Info;
	cpy_data_2_data(i, &Urdu_keymap_Info, &Urdu_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

	//智能哈萨克语(中国)
#ifdef WD_KAZAK/*_ABC*///change by wanghui
{
	extern lan_ddd Kazak_Ime_Data;
	extern lan_keymap_Info_t Kazak_keymap_Info;
	cpy_data_2_data(i, &Kazak_keymap_Info, &Kazak_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
	
#endif
	
	//智能哈萨克语wanghui
#ifdef WD_KAZAKH
{
	extern lan_ddd Kazakh_Ime_Data;
	extern lan_keymap_Info_t Kazakh_keymap_Info;
	cpy_data_2_data(i, &Kazakh_keymap_Info, &Kazakh_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
	
#endif

//智能朝鲜语
#ifdef WD_CNKOREAN_ABC
{
	extern lan_keymap_Info_t Cnkorean_ABC_keymap_Info;
	cpy_data_2_data(i, &Cnkorean_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//傣语
#ifdef WD_CHNDAI_ABC
{
	extern lan_keymap_Info_t Chndai_ABC_keymap_Info;
	cpy_data_2_data(i, &Chndai_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//智能壮语
#ifdef WD_CHNZHUANG_ABC
{
	extern lan_keymap_Info_t Chnzhuang_ABC_keymap_Info;
	cpy_data_2_data(i, &Chnzhuang_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif


//智能侗语
#ifdef WD_CHNDONG_ABC
{
	extern lan_keymap_Info_t Chndong_ABC_keymap_Info;
	cpy_data_2_data(i, &Chndong_ABC_keymap_Info, 0);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//智能苗语
#ifdef WD_MIAO//wanghui
{
	extern lan_ddd Miao_Ime_Data;
	extern lan_keymap_Info_t Miao_keymap_Info;
	cpy_data_2_data(i, &Miao_keymap_Info, &Miao_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

// 往下是外文 
//智能英语
#ifdef WD_ENGLISH
{
	extern lan_ddd English_Ime_Data;
	extern lan_keymap_Info_t English_keymap_Info;
	cpy_data_2_data(i, &English_keymap_Info, &English_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
//智能法语
#ifdef WD_FRENCH
{
	extern lan_ddd French_Ime_Data;
	extern lan_keymap_Info_t French_keymap_Info;
	cpy_data_2_data(i, &French_keymap_Info, &French_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
//荷兰语
#ifdef WD_DUTCH
{
	extern lan_ddd Dutch_Ime_Data;
	extern lan_keymap_Info_t Dutch_keymap_Info;
	cpy_data_2_data(i, &Dutch_keymap_Info, &Dutch_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
//希腊语
#ifdef WD_GREEK
{
	extern lan_ddd Greek_Ime_Data;
	extern lan_keymap_Info_t Greek_keymap_Info;
	cpy_data_2_data(i, &Greek_keymap_Info, &Greek_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}

#endif
//智能德语
#ifdef WD_GERMAN
{
	extern lan_ddd German_Ime_Data;
	extern lan_keymap_Info_t German_keymap_Info;
	cpy_data_2_data(i, &German_keymap_Info, &German_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif


//智能土耳其语
#ifdef WD_TURKISH
{
	extern lan_ddd Turkish_Ime_Data;
	extern lan_keymap_Info_t Turkish_keymap_Info;
	cpy_data_2_data(i, &Turkish_keymap_Info, &Turkish_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}

#endif

//智能意大利语
#ifdef WD_ITALIAN
{
	extern lan_ddd Italian_Ime_Data;
	extern lan_keymap_Info_t Italian_keymap_Info;
	cpy_data_2_data(i, &Italian_keymap_Info, &Italian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}

#endif

//智能丹麦
#ifdef WD_DANISH
{
	extern lan_ddd Danish_Ime_Data;
	extern lan_keymap_Info_t Danish_keymap_Info;
	cpy_data_2_data(i, &Danish_keymap_Info, &Danish_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
//智能瑞典
#ifdef WD_SWEDISH
{
	extern lan_ddd Swedish_Ime_Data;
	extern lan_keymap_Info_t Swedish_keymap_Info;
	cpy_data_2_data(i, &Swedish_keymap_Info, &Swedish_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//智能挪威
#ifdef WD_NORWEGIAN
{
	extern lan_ddd Norwegian_Ime_Data;
	extern lan_keymap_Info_t Norwegian_keymap_Info;
	cpy_data_2_data(i, &Norwegian_keymap_Info, &Norwegian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//智能西班牙语
#ifdef WD_SPANISH
{
	extern lan_ddd Spanish_Ime_Data;
	extern lan_keymap_Info_t Spanish_keymap_Info;
	cpy_data_2_data(i, &Spanish_keymap_Info, &Spanish_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
//捷克语
#ifdef WD_CZECH
{
	extern lan_ddd Czech_Ime_Data;
	extern lan_keymap_Info_t Czech_keymap_Info;
	cpy_data_2_data(i, &Czech_keymap_Info, &Czech_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
//波兰语
#ifdef WD_POLISH
{
	extern lan_ddd Polish_Ime_Data;
	extern lan_keymap_Info_t Polish_keymap_Info;
	cpy_data_2_data(i, &Polish_keymap_Info, &Polish_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}

#endif

//智能印尼语
#ifdef WD_INDONESIAN
{
	extern lan_ddd Indonesian_Ime_Data;
	extern lan_keymap_Info_t Indonesian_keymap_Info;
	cpy_data_2_data(i, &Indonesian_keymap_Info, &Indonesian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}

#endif

//智能葡萄牙语
#ifdef WD_PORTUGUESE
{
	extern lan_ddd Portuguese_Ime_Data;
	extern lan_keymap_Info_t Portuguese_keymap_Info;
	cpy_data_2_data(i, &Portuguese_keymap_Info, &Portuguese_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif


//波斯语
#ifdef WD_PERSIAN
{
	extern lan_ddd Persian_Ime_Data;
	extern lan_keymap_Info_t Persian_keymap_Info;
	cpy_data_2_data(i, &Persian_keymap_Info, &Persian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif



//智能加泰隆语
#ifdef WD_CATALAN
{
	extern lan_ddd Catalan_Ime_Data;
	extern lan_keymap_Info_t Catalan_keymap_Info;
	cpy_data_2_data(i, &Catalan_keymap_Info, &Catalan_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)	goto end;
}
#endif

// #endif
//智能俄语
#ifdef WD_RUSSIAN
{
	extern lan_ddd Russian_Ime_Data;
	extern lan_keymap_Info_t Russian_keymap_Info;
	cpy_data_2_data(i, &Russian_keymap_Info, &Russian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif


//智能泰国语
#ifdef WD_THAI
{
	extern lan_ddd Thai_Ime_Data;
	extern lan_keymap_Info_t Thai_keymap_Info;
	cpy_data_2_data(i, &Thai_keymap_Info, &Thai_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//乌克兰语
#ifdef WD_UKRAINIAN
{
	extern lan_ddd Ukrainian_Ime_Data;
	extern lan_keymap_Info_t Ukrainian_keymap_Info;
	cpy_data_2_data(i, &Ukrainian_keymap_Info, &Ukrainian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif


//智能马来语
#ifdef WD_MALAY
{
	extern lan_ddd Malay_Ime_Data;
	extern lan_keymap_Info_t Malay_keymap_Info;
	cpy_data_2_data(i, &Malay_keymap_Info, &Malay_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//智能越南语 
#ifdef WD_VIETNAMESE
{
	extern lan_ddd Vietnamese_Ime_Data;
	extern lan_keymap_Info_t Vietnamese_keymap_Info;
	cpy_data_2_data(i, &Vietnamese_keymap_Info, &Vietnamese_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//智能老挝语
#ifdef WD_LAO
{
	extern lan_ddd Lao_Ime_Data;
	extern lan_keymap_Info_t Lao_keymap_Info;
	cpy_data_2_data(i, &Lao_keymap_Info, &Lao_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//智能阿拉伯语
#ifdef WD_ARABIC
{
	extern lan_ddd Arabic_Ime_Data;
	extern lan_keymap_Info_t Arabic_keymap_Info;
	cpy_data_2_data(i, &Arabic_keymap_Info, &Arabic_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif


//智能印地语

#ifdef WD_HINDI
{
	extern lan_ddd Hindi_Ime_Data;
	extern lan_keymap_Info_t Hindi_keymap_Info;
	cpy_data_2_data(i, &Hindi_keymap_Info, &Hindi_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//智能他加禄语

#ifdef WD_TAGALOG
{
	extern lan_ddd Tagalog_Ime_Data;
	extern lan_keymap_Info_t Tagalog_keymap_Info;
	cpy_data_2_data(i, &Tagalog_keymap_Info, &Tagalog_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif



//智能希伯莱语

#ifdef WD_HEBREW
{
	extern lan_ddd Hebrew_Ime_Data;
	extern lan_keymap_Info_t Hebrew_keymap_Info;
	cpy_data_2_data(i, &Hebrew_keymap_Info, &Hebrew_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_ROMANIAN			//罗马尼亚语
{
	extern lan_ddd Romanian_Ime_Data;
	extern lan_keymap_Info_t Romanian_keymap_Info;
	cpy_data_2_data(i, &Romanian_keymap_Info, &Romanian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_BENGALI			//孟加拉语
{
	extern lan_ddd Bengali_Ime_Data;
	extern lan_keymap_Info_t Bengali_keymap_Info;
	cpy_data_2_data(i, &Bengali_keymap_Info, &Bengali_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_TELUGU			//泰卢固语输入法
{
	extern lan_ddd Telugu_Ime_Data;
	extern lan_keymap_Info_t Telugu_keymap_Info;
	cpy_data_2_data(i, &Telugu_keymap_Info, &Telugu_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_BULGARIAN		/* 保加利亚语				*/
{
	extern lan_ddd Bulgarian_Ime_Data;
	extern lan_keymap_Info_t Bulgarian_keymap_Info;
	cpy_data_2_data(i, &Bulgarian_keymap_Info, &Bulgarian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_SLOVENIAN		//斯洛文尼亚语输入法
{
	extern lan_ddd Slovenian_Ime_Data;
	extern lan_keymap_Info_t Slovenian_keymap_Info;
	cpy_data_2_data(i, &Slovenian_keymap_Info, &Slovenian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_KHMER
{
	extern lan_ddd Khmer_Ime_Data;
	extern lan_keymap_Info_t Khmer_keymap_Info;
	cpy_data_2_data(i, &Khmer_keymap_Info, &Khmer_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_BURMESE
{
	extern lan_ddd Burmese_Ime_Data;
	extern lan_keymap_Info_t Burmese_keymap_Info;
	cpy_data_2_data(i, &Burmese_keymap_Info, &Burmese_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_NEPALI
{
	extern lan_ddd Nepali_Ime_Data;
	extern lan_keymap_Info_t Nepali_keymap_Info;
	cpy_data_2_data(i, &Nepali_keymap_Info, &Nepali_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_GEORGIAN
{
	extern lan_ddd Georgian_Ime_Data;
	extern lan_keymap_Info_t Georgian_keymap_Info;
	cpy_data_2_data(i, &Georgian_keymap_Info, &Georgian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_ESTONIAN
{
	extern lan_ddd Estonian_Ime_Data;
	extern lan_keymap_Info_t Estonian_keymap_Info;
	cpy_data_2_data(i, &Estonian_keymap_Info, &Estonian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif	
#ifdef WD_ICELANDIC
{
	extern lan_ddd Icelandic_Ime_Data;
	extern lan_keymap_Info_t Icelandic_keymap_Info;
	cpy_data_2_data(i, &Icelandic_keymap_Info, &Icelandic_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_FINNISH
{
	extern lan_ddd Finnish_Ime_Data;
	extern lan_keymap_Info_t Finnish_keymap_Info;
	cpy_data_2_data(i, &Finnish_keymap_Info, &Finnish_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_BELARUSIAN
{
	extern lan_ddd Belarusian_Ime_Data;
	extern lan_keymap_Info_t Belarusian_keymap_Info;
	cpy_data_2_data(i, &Belarusian_keymap_Info, &Belarusian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_SERBIAN
{
	extern lan_ddd Serbian_Ime_Data;
	extern lan_keymap_Info_t Serbian_keymap_Info;
	cpy_data_2_data(i, &Serbian_keymap_Info, &Serbian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_SERBIANC
{
	extern lan_ddd Serbianc_Ime_Data;
	extern lan_keymap_Info_t Serbianc_keymap_Info;
	cpy_data_2_data(i, &Serbianc_keymap_Info, &Serbianc_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_SLOVAK
{
	extern lan_ddd Slovak_Ime_Data;
	extern lan_keymap_Info_t Slovak_keymap_Info;
	cpy_data_2_data(i, &Slovak_keymap_Info, &Slovak_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_TAMIL
{
	extern lan_ddd Tamil_Ime_Data;
	extern lan_keymap_Info_t Tamil_keymap_Info;
	cpy_data_2_data(i, &Tamil_keymap_Info, &Tamil_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_TURKMEN
{
	extern lan_ddd Turkmen_Ime_Data;
	extern lan_keymap_Info_t Turkmen_keymap_Info;
	cpy_data_2_data(i, &Turkmen_keymap_Info, &Turkmen_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_CHOSEN
{
	extern lan_ddd Chosen_Ime_Data;
	extern lan_keymap_Info_t Chosen_keymap_Info;
	cpy_data_2_data(i, &Chosen_keymap_Info, &Chosen_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_MONGOLIAN
{
	extern lan_ddd Mongolian_Ime_Data;
	extern lan_keymap_Info_t Mongolian_keymap_Info;
	cpy_data_2_data(i, &Mongolian_keymap_Info, &Mongolian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_SWAHILI
{
	extern lan_ddd Swahili_Ime_Data;
	extern lan_keymap_Info_t Swahili_keymap_Info;
	cpy_data_2_data(i, &Swahili_keymap_Info, &Swahili_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_MARATHI
{
	extern lan_ddd Marathi_Ime_Data;
	extern lan_keymap_Info_t Marathi_keymap_Info;
	cpy_data_2_data(i, &Marathi_keymap_Info, &Marathi_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif
#ifdef WD_KANNADA
{
	extern lan_ddd Kannada_Ime_Data;
	extern lan_keymap_Info_t Kannada_keymap_Info;
	cpy_data_2_data(i, &Kannada_keymap_Info, &Kannada_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_MALAYALAM
{
	extern lan_ddd Malayalam_Ime_Data;
	extern lan_keymap_Info_t Malayalam_keymap_Info;
	cpy_data_2_data(i, &Malayalam_keymap_Info, &Malayalam_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_ASSAMESE
{
	extern lan_ddd Assamese_Ime_Data;
	extern lan_keymap_Info_t Assamese_keymap_Info;
	cpy_data_2_data(i, &Assamese_keymap_Info, &Assamese_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_PUNJABI //旁遮普
{
	extern lan_ddd Punjabi_Ime_Data;
	extern lan_keymap_Info_t Punjabi_keymap_Info;
	cpy_data_2_data(i, &Punjabi_keymap_Info, &Punjabi_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_MAITHILI//迈蒂利
{
	extern lan_ddd Maithili_Ime_Data;
	extern lan_keymap_Info_t Maithili_keymap_Info;
	cpy_data_2_data(i, &Maithili_keymap_Info, &Maithili_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_BOSNIAN//波斯尼亚
{
	extern lan_ddd Bosnian_Ime_Data;
	extern lan_keymap_Info_t Bosnian_keymap_Info;
	cpy_data_2_data(i, &Bosnian_keymap_Info, &Bosnian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_CROATIAN//克罗地亚
{
	extern lan_ddd Croatian_Ime_Data;
	extern lan_keymap_Info_t Croatian_keymap_Info;
	cpy_data_2_data(i, &Croatian_keymap_Info, &Croatian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_LATVIAN//拉脱维亚
{
	extern lan_ddd Latvian_Ime_Data;
	extern lan_keymap_Info_t Latvian_keymap_Info;
	cpy_data_2_data(i, &Latvian_keymap_Info, &Latvian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_IRISH//爱尔兰
{
	extern lan_ddd Irish_Ime_Data;
	extern lan_keymap_Info_t Irish_keymap_Info;
	cpy_data_2_data(i, &Irish_keymap_Info, &Irish_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_GUJARATI   //古吉拉特
{
	extern lan_ddd Gujarati_Ime_Data;
	extern lan_keymap_Info_t Gujarati_keymap_Info;
	cpy_data_2_data(i, &Gujarati_keymap_Info, &Gujarati_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_HAUSA   //古吉拉特
{
	extern lan_ddd Hausa_Ime_Data;
	extern lan_keymap_Info_t Hausa_keymap_Info;
	cpy_data_2_data(i, &Hausa_keymap_Info, &Hausa_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_IGBO   //伊博
{
	extern lan_ddd Igbo_Ime_Data;
	extern lan_keymap_Info_t Igbo_keymap_Info;
	cpy_data_2_data(i, &Igbo_keymap_Info, &Igbo_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_AZERBAIJANI   //阿塞拜疆
{
	extern lan_ddd Azerbaijani_Ime_Data;
	extern lan_keymap_Info_t Azerbaijani_keymap_Info;
	cpy_data_2_data(i, &Azerbaijani_keymap_Info, &Azerbaijani_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

#ifdef WD_LITHUANIAN  //智能立陶宛
{
 	extern lan_ddd Lithuanian_Ime_Data;
 	extern lan_keymap_Info_t Lithuanian_keymap_Info;
	cpy_data_2_data(i,&Lithuanian_keymap_Info,&Lithuanian_Ime_Data);
	IsLanguageExist(languageInfo[i].imeType,existTemp,1);
	i++;
	if(i>=WD_IME_TOTAL)goto end;
}
#endif

//得到实际输入法的总数
end:	
	copy_languageInfo_2_inner(languageInfo,i);
	memcpy(exist,existTemp,64*sizeof(WD_UINT8));
}

void cpy_data_2_data(WD_UINT8 i, lan_keymap_Info_t* data, void* Ime_data)
{
	languageInfo[i].landdd = (const lan_ddd*)Ime_data;
	
	languageInfo[i].cur_language = data;
	languageInfo[i].imeType = data->imeType;
	memcpy(languageInfo[i].imeString, data->imeString, sizeof(languageInfo[i].imeString));
}

WD_UINT32 SG_openfile(WD_UINT16* fileName)
{
	return 0;
}

WD_UINT8  SG_readfile(WD_UINT32 handle, WD_UINT8* buf, WD_UINT32 size)
{
	return 0;
}

WD_UINT8  SG_writefile(WD_UINT32 handle, WD_UINT8* buf, WD_UINT32 size)
{
	return 0;
}

WD_UINT8  SG_closefile(WD_UINT32 handle)
{
	return 0;
}

WD_UINT32 SG_IME_MALLOC(WD_UINT8** flashBuf, WD_UINT32 bufSize)
{
	WD_UINT8 *pBuf = (WD_UINT8 *)malloc(bufSize);
	memset(pBuf, 0, bufSize);
	*flashBuf = pBuf;
	return bufSize;
}

WD_UINT32 SG_IME_FREE(WD_UINT8** flashBuf, WD_UINT32* bufSize)
{
	free(*flashBuf);
	*flashBuf = NULL;
	*bufSize = 0;
	return 0;
}

SG_INT SG_FS_Open(const SG_UINT16* FileName, SG_UINT Flag)
{
	return -1;
}

SG_INT SG_FS_Close(SG_INT FileHandle)
{
	return 0;
}

SG_INT SG_FS_Read(SG_INT FileHandle, void * DataPtr, SG_UINT Length, SG_UINT *Read)
{
	return 0;
}

SG_INT SG_FS_Write(SG_INT FileHandle, void * DataPtr, SG_UINT Length, SG_UINT * Written)
{
	return 0;
}

SG_UINT SG_FS_GetLength(SG_INT FileHandle)
{
	return 0;
}

SG_INT SG_FS_Seek(SG_INT FileHandle, SG_INT Offset, SG_UINT Whence)
{
	return 0;
}

SG_INT SG_FS_Delete(SG_UINT16 * FileName)
{
	return 0;
}

SG_INT SG_FS_Copy(SG_UINT16 * SrcFullPath, SG_UINT16 * DstFullPath)
{
	return 0;
}

SG_INT SG_FS_Move(SG_UINT16 * SrcFullPath, SG_UINT16 * DstFullPath)
{
	return 0;
}

SG_INT SG_FS_FindFirst(SG_UINT16 *NamePattern, SG_INT *IsFile, SG_UINT16 *FileName, SG_UINT MaxLength)
{
	return 0;
}

SG_INT SG_FS_FindNext(SG_INT FileHandle, SG_INT *IsFile, SG_UINT16 *FileName, SG_UINT MaxLength)
{
	return 0;
}

SG_INT SG_FS_FindClose(SG_INT FileHandle)
{
	return 0;
}

SG_INT SG_FS_CreateDir(SG_UINT16* FilePath)
{
	return -1;
}

void *SGMallocMem(SG_UINT size)
{
	void* aa = malloc(size);
	return aa;
}

void SoGou_FREE(void *ptr)
{
	free(ptr);
}

void *SoGou_Malloc(SG_UINT size)
{
	return malloc(size);
}

void SoGou_Free(void *ptr)
{
	free(ptr);
}

void *SG_Malloc(SG_UINT size)
{
	void* aa = malloc(size);
	return aa;
}

void SG_Free(void *ptr)
{
	free(ptr);
}


/***********************************************************************
trace 接口
*************************************************************************/
void sg_trace(const SG_INT8 *fmt, ...)
{
}
void SG_Assert(SG_INT express)
{

}

};
