当前位置: 首页 > 工具软件 > FreeEIM > 使用案例 >

FreeEIM 2013 SDK 部分源码

农星华
2023-12-01

FreeEIM 局域网聊天工具是一款全新的整合式企业即时通讯系统,它与外部互联网彻底隔绝,为企业提供各种基于内部网络的沟通方法,如语音通讯、文件传输、消息发送等。部署 FreeEIM,IT 专业人员只需简单地在每台 PC 上安装并运行 FreeEIM 即可,无需配置服务器,同时快速有效地满足企业内部协同办公的各种需求。
  1. using System;
  2. using System.Text;
  3. using System.Runtime.InteropServices;

  4. namespace ANYCHATAPI
  5. {
  6. /***********************************************************************************
  7.     * ** AnyChat Platform Server SDK
  8.     * *********************************************************************************/
  9.     public class AnyChatServerSDK
  10.     {
  11.         public const string AnyChatServerSDKDll = "AnyChatServerSDK.dll";

  12.         // #define BRAS_SERVERAPPMSG_CONNECTED                1                ///< 连接AnyChat服务器成功
  13.                 public const int BRAS_SERVERAPPMSG_CONNECTED = 1;
  14.         //#define BRAS_SERVERAPPMSG_DISCONNECT                2                ///< 与AnyChat服务器断开连接
  15.                 public const int BRAS_SERVERAPPMSG_DISCONNECT = 2;

  16.         /**
  17.                 *    回调函数定义
  18.                 */

  19.         // 服务器应用程序消息回调函数定义
  20.         //typedef void (CALLBACK* BRAS_OnServerAppMessage_CallBack)(DWORD dwMsg, LPVOID lpUserValue);
  21.         public delegate void OnServerAppMessageCallBack(int msg, int userValue);

  22.                 // SDK定时器回调函数定义(上层应用可以在该回调中处理定时任务,而不需要额外开启线程,或是定时器)
  23.                 //typedef void (CALLBACK* BRAS_OnTimerEvent_CallBack)(LPVOID lpUserValue);
  24.         public delegate void OnTimerEventCallBack(int userValue);

  25.                 // 用户身份验证回调函数定义
  26.                 // typedef DWORD (CALLBACK* BRAS_VerifyUser_CallBack)(IN LPCTSTR lpUserName,IN LPCTSTR lpPassword, OUT LPDWORD lpUserID, OUT LPDWORD lpUserLevel, OUT LPTSTR lpNickName,IN DWORD dwNCLen, LPVOID lpUserValue);
  27.         public delegate int VerifyUserCallBack(string userName, string password, ref int userID, ref int userLevel, IntPtr nickName, int len,int userValue);

  28.         // 用户申请进入房间回调函数定义
  29.         //typedef DWORD (CALLBACK* BRAS_PrepareEnterRoom_CallBack)(DWORD dwUserId, DWORD dwRoomId, LPCTSTR lpRoomName,LPCTSTR lpPassword, LPVOID lpUserValue);
  30.         public delegate int PrepareEnterRoomCallBack(int userId, int roomId, string roomName, string password, int userValue);

  31.         // 用户登录成功回调函数定义
  32.         //typedef void (CALLBACK* BRAS_OnUserLoginAction_CallBack)(DWORD dwUserId, LPCTSTR szUserName, DWORD dwLevel, LPCTSTR szIpAddr, LPVOID lpUserValue);
  33.         public delegate void OnUserLoginActionCallBack(int userId, string userName, int level, string addr, int userValue);

  34.         // 用户注销回调函数定义
  35.         //typedef void (CALLBACK* BRAS_OnUserLogoutAction_CallBack)(DWORD dwUserId, LPVOID lpUserValue);
  36.         public delegate void OnUserLogoutActionCallBack(int userId, int userValue);

  37.         // 用户进入房间回调函数定义
  38.         //typedef void (CALLBACK* BRAS_OnUserEnterRoomAction_CallBack)(DWORD dwUserId, DWORD dwRoomId, LPVOID lpUserValue);
  39.         public delegate void OnUserEnterRoomActionCallBack(int userId, int roomId, int userValue);

  40.         // 用户离开房间回调函数定义
  41.         //typedef void (CALLBACK* BRAS_OnUserLeaveRoomAction_CallBack)(DWORD dwUserId, DWORD dwRoomId, LPVOID lpUserValue);
  42.         public delegate void OnUserLeaveRoomActionCallBack(int userId, int roomId, int userValue);

  43.         // 上层业务自定义数据回调函数定义
  44.         //typedef void (CALLBACK* BRAS_OnRecvUserFilterData_CallBack)(DWORD dwUserId, LPCTSTR lpBuf, DWORD dwLen, LPVOID lpUserValue);
  45.         public delegate void OnRecvUserFilterDataCallBack(int userId, IntPtr buf, int len, int userValue);

  46.         // 收到用户文字聊天通信数据回调函数定义
  47.         //typedef void (CALLBACK* BRAS_OnRecvUserTextMsg_CallBack)(DWORD dwRoomId, DWORD dwSrcUserId, DWORD dwTarUserId, BOOL bSecret, LPCTSTR lpTextMessage, DWORD dwLen, LPVOID lpUserValue);
  48.         public delegate void OnRecvUserTextMsgCallBack(int roomId, int srcUserId, int tarUserId, bool bSecret, string textMessage, int len, int userValue);

  49.                 // 透明通道数据回调函数定义
  50.                 //typedef void (CALLBACK * BRAS_OnTransBuffer_CallBack)(DWORD dwUserId, LPBYTE lpBuf, DWORD dwLen, LPVOID lpUserValue);
  51.                 public delegate void OnTransBufferCallBack(int dwUserId, IntPtr lpBuf, int dwLen, int lpUserValue);
  52.                 
  53.                 // 透明通道数据扩展回调函数定义
  54.                 //typedef void (CALLBACK * BRAS_OnTransBufferEx_CallBack)(DWORD dwUserId, LPBYTE lpBuf, DWORD dwLen, DWORD wParam, DWORD lParam, DWORD dwTaskId, LPVOID lpUserValue);
  55.                 public delegate void OnTransBufferExCallBack(int dwUserId, IntPtr lpBuf, int dwLen, int wParam, int lParam, int dwTaskId, int lpUserValue);
  56.                 
  57.                 // 文件传输回调函数定义
  58.                 //typedef void (CALLBACK * BRAS_OnTransFile_CallBack)(DWORD dwUserId, LPCTSTR lpFileName, LPCTSTR lpTempFilePath, DWORD dwFileLength, DWORD wParam, DWORD lParam, DWORD dwTaskId, LPVOID lpUserValue);
  59.                 public delegate void OnTransFileCallBack(int dwUserId, string lpFileName, string lpTempFilePath, int dwFileLength, int wParam, int lParam, int dwTaskId, int lpUserValue);


  60.                 /**
  61.                 *    API 方法定义
  62.                 */

  63.         // 设置服务器应用程序消息回调函数
  64.         //BRAS_API DWORD BRAS_SetOnServerAppMessageCallBack(BRAS_OnServerAppMessage_CallBack lpFunction, LPVOID lpUserValue=NULL);
  65.         [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SetOnServerAppMessageCallBack", CallingConvention = CallingConvention.Cdecl)]
  66.         public static extern int BRAS_SetOnServerAppMessageCallBack(OnServerAppMessageCallBack function, int userValue);

  67.         // 设置SDK定时器回调函数(dwElapse:定时器间隔,单位:ms)
  68.         // BRAS_API DWORD BRAS_SetTimerEventCallBack(DWORD dwElapse, BRAS_OnTimerEvent_CallBack lpFunction, LPVOID lpUserValue=NULL);
  69.         [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SetTimerEventCallBack", CallingConvention = CallingConvention.Cdecl)]
  70.         public static extern int BRAS_SetTimerEventCallBack(int elapse, OnTimerEventCallBack function, int userValue);

  71.         // 设置用户身份验证回调函数
  72.         //BRAS_API DWORD BRAS_SetVerifyUserCallBack(BRAS_VerifyUser_CallBack lpFunction, LPVOID lpUserValue=NULL);
  73.         [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SetVerifyUserCallBack", CallingConvention = CallingConvention.Cdecl)]
  74.         public static extern int BRAS_SetVerifyUserCallBack(VerifyUserCallBack function, int userValue);

  75.         // 设置用户申请进入房间回调函数
  76.         // BRAS_API DWORD BRAS_SetPrepareEnterRoomCallBack(BRAS_PrepareEnterRoom_CallBack lpFunction, LPVOID lpUserValue=NULL);
  77.         [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SetPrepareEnterRoomCallBack", CallingConvention = CallingConvention.Cdecl)]
  78.         public static extern int BRAS_SetPrepareEnterRoomCallBack(PrepareEnterRoomCallBack function, int userValue);

  79.         // 设置用户登录成功回调函数
  80.         //BRAS_API DWORD BRAS_SetOnUserLoginActionCallBack(BRAS_OnUserLoginAction_CallBack lpFunction, LPVOID lpUserValue=NULL);
  81.         [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SetOnUserLoginActionCallBack", CallingConvention = CallingConvention.Cdecl)]
  82.         public static extern int BRAS_SetOnUserLoginActionCallBack(OnUserLoginActionCallBack function, int userValue);

  83.         // 设置用户注销回调函数
  84.         //BRAS_API DWORD BRAS_SetOnUserLogoutActionCallBack(BRAS_OnUserLogoutAction_CallBack lpFunction, LPVOID lpUserValue=NULL);
  85.         [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SetOnUserLogoutActionCallBack", CallingConvention = CallingConvention.Cdecl)]
  86.         public static extern int BRAS_SetOnUserLogoutActionCallBack(OnUserLogoutActionCallBack function, int userValue);

  87.         // 设置用户进入房间回调函数
  88.         //BRAS_API DWORD BRAS_SetOnUserEnterRoomActionCallBack(BRAS_OnUserEnterRoomAction_CallBack lpFunction, LPVOID lpUserValue=NULL);
  89.         [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SetOnUserEnterRoomActionCallBack", CallingConvention = CallingConvention.Cdecl)]
  90.         public static extern int BRAS_SetOnUserEnterRoomActionCallBack(OnUserEnterRoomActionCallBack function, int userValue);

  91.         // 设置用户离开房间回调函数
  92.         //BRAS_API DWORD BRAS_SetOnUserLeaveRoomActionCallBack(BRAS_OnUserLeaveRoomAction_CallBack lpFunction, LPVOID lpUserValue=NULL);
  93.         [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SetOnUserLeaveRoomActionCallBack", CallingConvention = CallingConvention.Cdecl)]
  94.         public static extern int BRAS_SetOnUserLeaveRoomActionCallBack(OnUserLeaveRoomActionCallBack function, int userValue);

  95.         // 设置用户上层业务自定义数据回调函数
  96.         // BRAS_API DWORD BRAS_SetOnRecvUserFilterDataCallBack(BRAS_OnRecvUserFilterData_CallBack lpFunction, LPVOID lpUserValue=NULL);
  97.         [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SetOnRecvUserFilterDataCallBack", CallingConvention = CallingConvention.Cdecl)]
  98.         public static extern int BRAS_SetOnRecvUserFilterDataCallBack(OnRecvUserFilterDataCallBack function, int userValue);

  99.         // 设置用户文字聊天通信数据回调函数
  100.         //BRAS_API DWORD BRAS_SetOnRecvUserTextMsgCallBack(BRAS_OnRecvUserTextMsg_CallBack lpFunction, LPVOID lpUserValue=NULL);
  101.         [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SetOnRecvUserTextMsgCallBack", CallingConvention = CallingConvention.Cdecl)]
  102.         public static extern int BRAS_SetOnRecvUserTextMsgCallBack(OnRecvUserTextMsgCallBack function, int userValue);
  103.                 
  104.                 
  105.                 // 设置透明通道数据回调函数
  106.                 //BRAS_API DWORD BRAS_SetOnTransBufferCallBack(BRAS_OnTransBuffer_CallBack lpFunction, LPVOID lpUserValue=NULL);
  107.                 [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SetOnTransBufferCallBack", CallingConvention = CallingConvention.Cdecl)]
  108.                 public static extern int BRAS_SetOnTransBufferCallBack(OnTransBufferCallBack function, int lpUserValue);
  109.                 
  110.                 // 设置透明通道数据扩展回调函数
  111.                 //BRAS_API DWORD BRAS_SetOnTransBufferExCallBack(BRAS_OnTransBufferEx_CallBack lpFunction, LPVOID lpUserValue=NULL);
  112.                 [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SetOnTransBufferExCallBack", CallingConvention = CallingConvention.Cdecl)]
  113.                 public static extern int BRAS_SetOnTransBufferExCallBack(OnTransBufferExCallBack function, int lpUserValue);
  114.                 
  115.                 // 设置文件传输回调函数
  116.                 //BRAS_API DWORD BRAS_SetOnTransFileCallBack(BRAS_OnTransFile_CallBack lpFunction, LPVOID lpUserValue=NULL);
  117.                 [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SetOnTransFileCallBack", CallingConvention = CallingConvention.Cdecl)]
  118.                 public static extern int BRAS_SetOnTransFileCallBack(OnTransFileCallBack function, int lpUserValue);

  119.                 
  120.                 // 获取SDK版本信息
  121.                 //BRAS_API DWORD BRAS_GetSDKVersion(DWORD& dwMainVer, DWORD& dwSubVer, TCHAR* lpCompileTime, DWORD dwBufLen);
  122.                 [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_GetSDKVersion", CallingConvention = CallingConvention.Cdecl)]
  123.         public static extern int BRAS_GetSDKVersion(ref int dwMainVer, ref int dwSubVer, StringBuilder lpCompileTime, int bufLen);
  124.                 
  125.         // 初始化SDK
  126.         //BRAS_API DWORD BRAS_InitSDK(DWORD dwReserved);
  127.         [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_InitSDK", CallingConvention = CallingConvention.Cdecl)]
  128.         public static extern int BRAS_InitSDK(int reserved);

  129.         // 释放资源
  130.         //BRAS_API DWORD BRAS_Release(void);
  131.         [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_Release", CallingConvention = CallingConvention.Cdecl)]
  132.         public static extern int BRAS_Release();

  133.         // 向指定用户发送数据
  134.         //BRAS_API DWORD BRAS_SendBufToUser(DWORD dwUserId, LPCTSTR lpBuf, DWORD dwLen);
  135.         [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SendBufToUser", CallingConvention = CallingConvention.Cdecl)]
  136.         public static extern int BRAS_SendBufToUser(int userId, byte[] buf, int len);

  137.         // 向指定房间的所有用户发送数据
  138.         //BRAS_API DWORD BRAS_SendBufToRoom(DWORD dwRoomId, LPCTSTR lpBuf, DWORD dwLen);
  139.         [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_SendBufToRoom", CallingConvention = CallingConvention.Cdecl)]
  140.         public static extern int BRAS_SendBufToRoom(int dwRoomId, byte[] lpBuf, int dwLen);
  141.                 
  142.                 // 向指定用户发送透明通道数据
  143.                 //BRAS_API DWORD BRAS_TransBuffer(DWORD dwUserId, LPBYTE lpBuf, DWORD dwLen);
  144.                 [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_TransBuffer", CallingConvention = CallingConvention.Cdecl)]
  145.                 public static extern int BRAS_TransBuffer(int dwUserId, byte[] lpBuf, int dwLen);
  146.                 
  147.                 // 向指定用户发送扩展缓冲区数据
  148.                 //BRAS_API DWORD BRAS_TransBufferEx(DWORD dwUserId, LPBYTE lpBuf, DWORD dwLen, DWORD wParam, DWORD lParam, DWORD dwFlags, DWORD& dwTaskId);
  149.                 [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_TransBufferEx", CallingConvention = CallingConvention.Cdecl)]
  150.                 public static extern int BRAS_TransBufferEx(int dwUserId, byte[] lpBuf, int dwLen, int wParam, int lParam, int dwFlags, ref int dwTaskId);
  151.                 
  152.                 // 向指定用户发送文件
  153.                 //BRAS_API DWORD BRAS_TransFile(DWORD dwUserId, LPCTSTR lpLocalPathName, DWORD wParam, DWORD lParam, DWORD dwFlags, DWORD& dwTaskId);
  154.                 [DllImport(AnyChatServerSDKDll, EntryPoint = "BRAS_TransFile", CallingConvention = CallingConvention.Cdecl)]
  155.                 public static extern int BRAS_TransFile(int dwUserId, string lpLocalPathName, int wParam, int lParam, int dwFlags, ref int dwTaskId);
  156.                 
  157.                 
  158.     }
  159. }
复制代码
FreeEIM 飞鸽传书  http://www.wzszf.com/thread-18900-1-1.html
 类似资料: