//vIDCc.h
//maker yyc
//http://yycnet.yeah.net
//Copyright (C) 2003-2004 yyc, All Rights Reserved 

#define EOK_VIDC 0
#define ENAME_VIDC -1 //客户端名称错误/指定的客户端名称已经存在
#define EINIT_VIDC -2 //初始化失败
#define ENULL_VIDC -3 //客户端对象为空
#define EPARAM_VIDC -4 //传递参数错误
#define ECONN_VIDC -5 //无法连接vIDC服务
#define EMAXUSER_VIDC -11 //无法连接vIDC服务,超过最大客户端限制
#define EFAILED_VIDC -6 //vIDC服务返回错误
#define EPWD_VIDC -7 //密码校验错误,无法访问
#define EUNKNOW_VIDC -8 //未知的错误,可查看具体错误返回码
#define EBIND_VIDC -9	//映射端口错误
#define EUSED_VIDC -12  //端口映射失败,指定的端口已经被占用
#define ESOCKINIT_VIDC -10 //初始化网络失败
//初始化vIDC客户端
extern "C"
long WINAPI vIDC_Init(const char *clientName);
//释放vIDC客户端资源
extern "C"
long WINAPI vIDC_Exit();
//设置连接vIDC服务端密码
extern "C"
long WINAPI vIDC_Setpwd(const char *strPwd);
//连接/登录指定的vIDC服务
extern "C"
long WINAPI vIDC_Connect(const char *svrIP,int svrPort);
//断开/注销vIDC服务的连接
extern "C"
long WINAPI vIDC_Close();
//映射服务(ip:iPort)到vIDC服务的某个端口(destPort)
//如果destPort<=0则IDC服务自动分配映射端口
//返回映射端口,<=0发生错误
extern "C"
long WINAPI vIDC_Bind(int iPort,const char *ip,int destPort);
//取消某个映射端口绑定的服务
extern "C"
long WINAPI vIDC_Unbind(int bindPort);
//返回和vIDC服务的连接/登录状态
//如果连接/登录正常返回EOK_VIDC,否则连接已经断开
extern "C"
long WINAPI vIDC_Status();
//only for Debug版本的DLL
//输出调试信息
extern "C"
long WINAPI vIDC_SetLogLevel(int iLogLevel);