c#怎么调用vc的DLL里的回调函数?
Hi3号 2012-04-18 05:13:30 IP_NET_DVR_SetStatusEventCallBack(设置状态告警事件回调函数)
函数原型:
LONG __stdcall IP_NET_DVR_SetStatusEventCallBack(StatusEventCallBack fStatusEventCallBack,void * pUser);
功能:
设置设备状态变化、或者有接收到事件、告警时的回调函数。
参数:
fStatusEventCallBack:回调用函数,声明原型为:typedef LONG(CALLBACK *StatusEventCallBack)(LONG lUser,LONG nStateCode,char *pResponse,void *pUser);
其中参数意义为:
lUser:标识是哪个设备
nStateCode:事件类型,值有如下:
enum enumNetSatateEvent
{
EVENT_CONNECTING,//连接中
EVENT_CONNECTOK,//连接成功
EVENT_CONNECTFAILED,//连接失败
EVENT_SOCKETERROR,//sock失败
EVENT_LOGINOK,//登录成功
EVENT_LOGINFAILED,//登录失败
EVENT_STARTAUDIOOK,//对讲启动成功
EVENT_STARTAUDIOFAILED,//对讲启动失败
EVENT_STOPAUDIOOK,//停止对讲成功
EVENT_STOPAUDIOFAILED,//停止对讲失败
EVENT_SENDPTZOK,//发送云台控制命令成功
EVENT_SENDPTZFAILED,//发送云台控制命令失败
EVENT_SENDAUXOK,//发送辅助通道成功
EVENT_SENDAUXFAILED,//发送辅助通道失败
EVENT_UPLOADOK,//上传文件成功
EVENT_UPLOADFAILED,//上传文件失败
EVENT_DOWNLOADOK,//下载成功
EVENT_DOWNLOADFAILED,//下载失败
EVENT_REMOVEOK,//删除文件成功
EVENT_REMOVEFAILED,//删除文件失败
EVENT_SENDPTZERROR,//云台操作失败
EVENT_PTZPRESETINFO,//预置点信息
EVNET_PTZNOPRESETINFO,//没有预置点
EVENT_PTZALARM,//告警信息
EVENT_RECVVIDEOPARAM,//视频参数返回
EVENT_RECVAUDIOPARAM,//音频参数返回
EVENT_CONNECTRTSPERROR,//请求实时视频失败
EVENT_CONNECTRTSPOK,//读求实时视频成功
EVENT_RTSPTHREADEXIT//请求实时视频线程结束
};
其中nStateCode= EVENT_PTZALARM时,pResponse中的alarm_code表示告警类型,定义如下
1 : 设备下线
2 : 设备上线
3 : USB接上
4 : USB拔出
5 : SD卡1接上
6 : SD卡1拔出
7 : SD卡2接上
8 : SD卡2拔出
9 : USB存储空间不足
10: SD卡1存储空间不足
11: SD卡2存储空间不足
12: 视频丢失
13: 视频遮挡
14: 图像移动告警
15: IO由高到低触发
16: IO由低到高触发
17: 空间不足告警
18: 录像启动成功
19: 录像结束
20: 录像启动失败
pResponse:相关XML数据
pUser:调用回调时,将为参数void *pUser
返回值:
返回0表示成功
----------------------------------------------------------------------------------------
上为dll文档,求指点。