
//--------定义QQQDaTi.dll中函数-----------//

/*--------------------------------------------------
LogIn(UserName,UserPwd);

  函数说明  登录（返回密码串-UserKey）
  
	参数1 UserName
	名称  用户名
	类型  字符串
	
	  
		参数2 UserPwd
		名称  密码
		类型  字符串
		
		  
			返回值 
			类型  字符串
			内容  密码串(长度大于10) 或者错误信息
			
			  用户登录返回代码
			  C_Login_PARAM_ERROR = '-6';   // 参数错误
			  C_Login_NOT_FIND_USER = '-7'; // 未找到用户,或者密码错误，或者用户被锁定
			  C_Login_KEY_ERROR = '-8';     //非法请求,KEY错误
C_Login_Unknown ='-88';    //未知错误
--------------------------------------------------*/
typedef const char *(WINAPI* LOGIN)(const char *UserName,const char *UserPassWord);
LOGIN Login=NULL;


/*---------------------------------------------------
RegUser(UserName,UserPwd,extUserName);

  函数说明  注册子账户（此功能需要管理员开通）
  
	参数1 UserName
	名称  用户名
	类型  字符串
	
	  参数2 UserPwd
	  名称  密码
	  类型  字符串
	  
		参数3 extUserName
		名称  父系帐号名
		类型  字符串
		
		  返回值  错误代码
		  类型  字符串
		  
			C_RegUser_REGISTER_SUCCESS = '0'; // 注册成功
			C_RegUser_PARAM_ERROR = '-6'; // 参数错误
			C_RegUser_NOT_FIND_EXTENDS_USER = '-7'; // 未找到父账号
			C_RegUser_EXTENDS_USER_LOCK = '-8'; // 父账号被锁定
			C_RegUser_EXTENDS_USER_NOT_SUPER = '-9'; // 父账号不是顶级账号
			C_RegUser_USER_EXIST = '-10';      // 用户名已存在
			C_Report_Unknown ='-88'; //未知错误
---------------------------------------------------*/
typedef const char *(WINAPI* REGUSER)(const char *UserName,const char *UserPassWord,const char *extUserName);
REGUSER RegUser=NULL;



/*--------------------------------------------------
Check(UserKey)；

函数说明  查询剩余题分

参数1 UserKey
名称  密码串
类型  字符串

返回值 剩余题分 或者 错误代码
类型  字符串

C_Check_PARAM_ERROR = '-6';  //参数错误
C_Check_NOT_FIND_USER = '-7';  //未找到用户或者用户被锁定
C_Check_KEY_ERROR = '-8';  //KEY错误
C_Check_PARAM_ERROR=-10 

C_Check_Unknown ='-88' ;  //未知错误
----------------------------------------------------------*/
typedef const char * (WINAPI* CHECK)(const char *UserKey);   //函数说明  查询剩余题分
CHECK userDeposits=NULL;



/*----------------------------------------------------------
SetLogName(LogName);

函数说明  修改日志名字（日志名字）

参数1 LogName  
名称  日志名字
类型  字符串.

返回值 错误代码
类型 字符串

C_SetSetLogName_SUCCESS = '0'; // 设置成功
----------------------------------------------------------*/
typedef const char * (WINAPI* SETLOGNAME)(const char *LogName); //函数说明  修改日志名字（日志名字）
SETLOGNAME SetLogName=NULL;


/*-----------------------------------------------------------
Enable(UseLog);

  函数说明  打开关闭日志
  
	参数1 UseLog  
	名称  使用日志  (日志默认是打开状态的 c:\3Q.log) uselog=1 表示打开 其他表示关闭
	类型  字符串
	
	  返回值 错误代码
	  类型 字符串
	  
		C_Enable_True = '0';  //打开被日志
C_Enable_False = '-1'; //日志被关闭
------------------------------------------------------------*/
typedef const char * (WINAPI* ENABLELOG)(const char *UserLog);  //函数说明  打开关闭日志 *UserLog=1 表示打开 其他表示关闭
ENABLELOG EnableLog=NULL;



/*--------------------------------------------------
SendFile(UserKey,GameId,ImgPath,OverTime);
函数说明  发送图片文件

参数1 UserKey  
名称  密码串
类型  字符串

参数2 GameId  
名称  游戏id
类型  整数

参数3 ImgPath 
名称  图片路径
类型  字符串

参数4 OverTime 
名称  超时时长(单位 秒)
		 类型  整数
		 
		 返回值 
		 类型 字符串
		 内容 题目id(题目id长度大于10位) 或者 错误信息 
		 
		 C_SendFile_PARAM_ERROR = '-6';  //参数错误
C_SendFile_NOT_FIND_USER = '-7';  //未找到用户
C_SendFile_KEY_ERROR = '-8';  //KEY错误
C_SendFile_NOT_FIND_GAME = '-9';  //未找到对应的游戏
C_SendFile_INTEGRAL_LACK = '-10';  //积分不足
C_SendFile_QUEUE_FULL = '-11';  //队列满
C_SendFile_DEDUCT_INTEGRAL_ERROR = '-12';  //扣取积分出错

积分不足 返回值=-10 
注册码过期 返回值=-15
注册码禁用 返回值=-16
C_SendFile_Unknown = '-88';  //未知错误
----------------------------------------------------------*/
typedef const char * (WINAPI* SENDFILE)(const char *UserKey,int GameId,const char *ImgPath,int OverTime); 
SENDFILE SendFile=NULL;


/*--------------------------------------------------------
SendImage(UserKey,GameId,StartX,StartY,Width,Height,OverTime);

  函数说明  截图并发送
  
	参数1 UserKey  
	名称  密码串
	类型  字符串
	
	  参数2 GameId  
	  名称  游戏id
	  类型  整数
	  
		参数3 StartX 
		名称  截图左上角的x坐标
		类型  整数
		
		  参数4 StartY 
		  名称  截图左上角的Y坐标
		  类型  整数
		  
			参数5 Width 
			名称  截图宽度
			类型  整数
			
			  参数6 Height 
			  名称  截图高度
			  类型  整数
			  
				
				  参数7 OverTime 
				  名称  超时时长(单位 秒)
				  类型  整数
				  
					返回值 
					类型 字符串
					内容 题目id(题目id长度大于10位) 或者 错误信息 
					
					  
						
						  C_SendFile_PARAM_ERROR = '-6';  //参数错误
						  C_SendFile_NOT_FIND_USER = '-7';  //未找到用户
						  C_SendFile_KEY_ERROR = '-8';  //KEY错误
						  C_SendFile_NOT_FIND_GAME = '-9';  //未找到对应的游戏
						  C_SendFile_INTEGRAL_LACK = '-10';  //积分不足
						  C_SendFile_QUEUE_FULL = '-11';  //队列满
						  C_SendFile_DEDUCT_INTEGRAL_ERROR = '-12';  //扣取积分出错
C_SendFile_Unknown = '-88';  //未知错误
--------------------------------------------------------*/
typedef const char * (WINAPI* SENDIMAGE)(const char * userKey,int gameID,int x,int y,int iWidth,int iHeight,int overTime);
SENDIMAGE SendImage=NULL;

/*---------------------------------------------------------
GetAnswer(Tid);

函数说明  获取答案

参数1 Tid
名称  题目ID(大于10位)
		 类型  字符串
		 
		 返回值 
		 类型  字符串
		 内容 答案 或者 错误代码(错误代码 - 开头 -99 表示等待作答)
		 
		 C_GetAnswer_PARAM_ERROR = '-6';  //参数错误
C_GetAnswer_TOPIC_NUMBER_ERROR = '-7';  //题号不存在
C_GetAnswer_NoAnswer ='-76'; //超时
C_GetAnswer_OverTime ='-77'; //无法识别
C_GetAnswer_Unknown ='-88' ;//未知错误
C_GetAnswer_WAIT ='-99' ;//等待作答
----------------------------------------------------------*/
typedef const char * (WINAPI* GETANSWER)(const char * id);
GETANSWER getAnswer=NULL;


/*---------------------------------------------------------
Report(Tid,UserKey);

  函数说明  申诉错题
  
	参数1 Tid
	名称  题目ID(大于10位)
	类型  字符串
	
	  参数2 UserKey  
	  名称  密码串
	  类型  字符串
	  
		返回值
		类型 字符串
		内容 错误代码
		C_Report_PARAM_ERROR = '-6';  //参数错误
		C_Report_NOT_FIND_USER = '-7';  //未找到用户
		C_Report_KEY_ERROR = '-8';  //KEY错误
		C_Report_NOT_FIND_TOPICNO = '-9';  //未找到对应的题号
		C_Report_TOPIC_STATUS_NOTEND = '-10';  //题状态不为结束状态，不能申诉
		C_Report_Unknown ='-88';  //未知错误

---------------------------------------------------------*/
typedef const char * (WINAPI* REPORTWRONG)(const char * id, const char *UserKey);
REPORTWRONG reportWrong=NULL;


/*--------------------------------------------------------
SetSoftKey(SoftKey);

  函数说明  设置作者key（返利给作者,注册为作者帐号后招管理员开通）
  
	参数1 SoftKey
	名称  作者key(作者用户在网站上显示作者key)
	类型  字符串
	
	  返回值 错误代码
	  类型 字符串
	  
C_SetSoftKey_SUCCESS = '0'; // 设置成功
-------------------------------------------------------*/
typedef const char *(WINAPI* SETSOFTKEY)(const char *SoftKey);
SETSOFTKEY SetSoftKey=NULL;



/*-------------------------------------------------------
SetFather(Fatherid);

  函数说明  强制发题用户为父系的子账户或者父系的注册码
  
	参数1 Fatherid  
	名称  父系帐号id（例如作者的上传密码串<不是softkey>是1234|555555555555，其中1234就是作者id）
	类型  字符串
	
	  返回值 错误代码
	  类型 字符串
	  
C_SetSoftFather_SUCCESS = '0'; // 设置成功
-------------------------------------------------------*/
typedef const char *(WINAPI* SETFATHER)(const char *FatherID);
SETFATHER SetFather=NULL;