Global.cpp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557
  1. //////////////////////////////////////////////////////////////////////////////
  2. ////// //////
  3. ////// 文 件: Global.cpp //////
  4. ////// 作 者: sailing //////
  5. ////// 创建时间: 2008-08-20 //////
  6. ////// 说 明: 定义全局变量,全局函数 //////
  7. ////// //////
  8. ////// 修改时间: //////
  9. ////// 修改说明: //////
  10. ////// //////
  11. //////////////////////////////////////////////////////////////////////////////
  12. #pragma once
  13. #include "stdafx.h"
  14. //版本信息
  15. CString g_strVersion = "3.0.2.5";
  16. //程序退出事件
  17. HANDLE g_hRunObject = NULL;
  18. //Server
  19. CHAR g_strServerIP[MAX_EQUIP_IP + 1] = {0};
  20. CHAR g_strServerPort[MAX_PORT + 1] = {0};
  21. //Database
  22. CHAR g_strConnectString[MAX_PATH + 1] = ""; // 数据连接字符串
  23. CHAR g_strDBType[MAX_SERVER_LENGTH + 1] = ""; // 数据库连接类型(如: SQL SERVER 、Access )
  24. CHAR g_strAccessFile[MAX_PATH_LENGTH + 1] = ""; // 如果是用Access数据库:Access文件名称
  25. // 如用其它数据库:为空
  26. CHAR g_strServerName[MAX_SERVER_LENGTH + 1] = ""; // 数据库服务器名称或IP
  27. CHAR g_strDataBaseName[MAX_DATABASE_LENGTH + 1] = ""; // 数据库名称
  28. CHAR g_strUserName[MAX_USER_LENGTH + 1] = ""; // 数据库用户名
  29. CHAR g_strPassword[MAX_PASSWORD_LENGTH + 1] = ""; // 数据库密码
  30. //用户信息
  31. CHAR g_strLoginUserID[MAX_USER_LENGTH + 1] = ""; // 当前使用该软件的用户名
  32. CHAR g_strLoginPwd[MAX_PASSWORD_LENGTH + 1] = ""; // 当前使用该软件的密码
  33. CHAR g_strDefaultUserID[MAX_USER_LENGTH + 1] = {0};
  34. CHAR g_strDefaultUserPwd[MAX_PASSWORD_LENGTH + 1] = {0};
  35. INT g_nIsDemo = 0;
  36. CString g_strCommunity = "public";
  37. bool g_bHaveControlPwd = true;
  38. //RunParam
  39. INT g_nIsPoll = 0;
  40. INT g_nPollInterval = 0;
  41. INT g_nPollCount = 0;
  42. CHAR g_strPollPath[MAX_VIEW_NUM][MAX_PATH] = {0};
  43. CHAR g_strPollDesc[MAX_VIEW_NUM][MAX_DESC] = {0};
  44. INT g_nPollIndex = 0;
  45. DWORD g_dwTick = 0;
  46. //AlarmMode
  47. INT g_nAlarmModeIsDlg = 0;
  48. INT g_nAlarmModeIsSound = 0;
  49. INT g_nAlarmModeSoundPlayNum = 0;
  50. INT g_nAlarmToPic = 0;
  51. //Comm
  52. INT g_nCommDlgLevel = 0;
  53. INT g_nCommWavLevel = 0;
  54. //TTS参数配置
  55. INT g_nTTSType = 5; // TTS格式类型
  56. //Toolbar显示选项
  57. INT g_nToolbarTop = 0;
  58. INT g_nToolbarLeft = 0;
  59. INT g_nToolbarRun = 0;
  60. INT g_nToolBarStatus = 0;
  61. //用户权限
  62. vector<int> g_vtUserGroupID;
  63. vector<int> g_vtUserRoomID;
  64. vector<__USEREQUIPINFO> g_vtUserEquipInfo;
  65. vector<__USERROLEINFO> g_vtUserRoleInfo;
  66. vector<__USERTELINFO> g_vtUserTelInfo;
  67. bool g_bPurviewAddEquip = FALSE;
  68. bool g_bPurviewAddMobusEquip = FALSE;
  69. bool g_bPurviewSetIP = FALSE;
  70. bool g_bPurviewEquipTypeInfoManager = FALSE;
  71. bool g_bPurviewEquipTypeInfoRead = FALSE;
  72. bool g_bPurviewAreaInfoManager = FALSE;
  73. bool g_bPurviewAreaInfoRead = FALSE;
  74. bool g_bPurviewRoomInfoManager = FALSE;
  75. bool g_bPurviewRoomInfoRead = FALSE;
  76. bool g_bPurviewUserInfoManager = FALSE;
  77. bool g_bPurviewUserInfoRead = FALSE;
  78. bool g_bPurviewUserGroupInfoManager = FALSE;
  79. bool g_bPurviewUserGroupInfoRead = FALSE;
  80. bool g_bPurviewUserGroupPurviewManager = FALSE;
  81. bool g_bPurviewUserPurviewManager = FALSE;
  82. bool g_bPurviewUserDatePlan = FALSE;
  83. bool g_bPurviewPurviewInfoManager = FALSE;
  84. bool g_bPurviewPurviewInfoRead = FALSE;
  85. bool g_bPurviewSPEquipManager = FALSE;
  86. bool g_bPurviewSPEquipRead = FALSE;
  87. bool g_bPurviewSensorManager = FALSE;
  88. bool g_bPurviewSensorRead = FALSE;
  89. bool g_bPurviewRelayControl = FALSE;
  90. bool g_bPurviewVideoContorl = FALSE;
  91. bool g_bPurviewEquipDatePlan = FALSE;
  92. bool g_bPurviewRouterEquipManager = FALSE;
  93. bool g_bPurviewRouterEquipRead = FALSE;
  94. bool g_bPurviewUpsManager = FALSE;
  95. bool g_bPurviewUpsRead = FALSE;
  96. bool g_bPurviewVideoEquipManager = FALSE;
  97. bool g_bPurviewVideoEquipRead = FALSE;
  98. bool g_bPurviewTEPWManager = FALSE;
  99. bool g_bPurviewTEPWRead = FALSE;
  100. bool g_bPurviewUpsMGEManager = FALSE;
  101. bool g_bPurviewUpsMGERead = FALSE;
  102. bool g_bPurviewMcQuayManager = FALSE;
  103. bool g_bPurviewMcQuayRead = FALSE;
  104. bool g_bPurviewHGManager = FALSE;
  105. bool g_bPurviewHGRead = FALSE;
  106. bool g_bPurviewLeakageManager = FALSE;
  107. bool g_bPurviewLeakageRead = FALSE;
  108. bool g_bPurviewAirConditionManager = FALSE;
  109. bool g_bPurviewAirConditionRead = FALSE;
  110. bool g_bPurviewAirConditionOpen = FALSE;
  111. bool g_bPurviewAirConditionClose = FALSE;
  112. bool g_bPurviewCFIManager = FALSE;
  113. bool g_bPurviewCFIRead = FALSE;
  114. bool g_bPurviewEquipAlloc = FALSE;
  115. //Dog
  116. HANDLE g_hSemDogRead = NULL;
  117. char g_szDogData[10] = {0};
  118. //日志
  119. CHAR g_strDirectory[MAX_PATH_LENGTH + 1]; // 软件所在路径
  120. CHAR g_strAppName[MAX_PATH_LENGTH + 1] = {0}; // 软件名称
  121. //视频采集卡
  122. INT g_nCardCount = 0; // 板卡个数
  123. INT g_nDspsCount = 0; // 正确编码的通道个数
  124. INT g_nStartingCapture[64] = {0}; // 录像状态
  125. CHAR g_strVideoCapPath[MAX_PATH + 1] = {0}; // 视频录像保存路径
  126. //系统设置
  127. BOOL g_bEnableTimeLimited = FALSE; // TRUE:时间限制 FALSE:正式版
  128. INT g_iAutoRunSystem = 0; // 是否开机自启动该系统
  129. CHAR g_strLanguage[MAX_LANG_LENGTH + 1]={0}; // 默认语言
  130. //视频卡
  131. //视频选项卡标题
  132. CString g_strVideoTabMonitorTitle;
  133. CString g_strVideoTabPlaybackTitle;
  134. //界面语言
  135. CString g_strEquipExist;
  136. CString g_strLogTypeEvent;
  137. CString g_strLogTypeData;
  138. CString g_strLogTypeError;
  139. CString g_strLogTypeWarning;
  140. CString g_strLogModMainThread;
  141. CString g_strLogModDB;
  142. CString g_strLogModEmail;
  143. CString g_strLogModSms;
  144. CString g_strLogModPing;
  145. CString g_strLogModTrap;
  146. CString g_strLogModSnmp;
  147. CString g_strLogModDog;
  148. CString g_strLogModNotice;
  149. CString g_strLogModContents;
  150. CString g_strLogModTime;
  151. BOOL g_bRun; //运行否
  152. BOOL g_bEdit; //编辑否
  153. int g_nElementNo; //选中的元件编号
  154. CString g_strViewName;
  155. int g_nUserID; //当前用户的ID
  156. // 系统参数
  157. BOOL g_bAlarmVoice;
  158. BOOL g_bHideTask;
  159. CString g_strStartPic;
  160. CString g_strStartPath;
  161. BOOL g_bStartRun = TRUE;
  162. BOOL g_bEventAlarm;
  163. BOOL g_bFullScreen;
  164. // 事件参数
  165. BOOL g_bControlEvent;
  166. CString g_strYkWave;
  167. BOOL g_bLoginEvent;
  168. CString g_strLoginWave;
  169. BOOL g_bReguEvent;
  170. CString g_strReguWave;
  171. BOOL g_bSetEvent;
  172. CString g_strSetWave;
  173. BOOL g_bYcEvent;
  174. CString g_strYcWave;
  175. BOOL g_bYxChangeEve;
  176. CString g_strYxChangeWave;
  177. //错误代码,提示
  178. CHAR g_strErrorExecSql[MAX_ERROR_LEN + 1] = {0};
  179. CHAR g_strErrorDBDisConnection[MAX_ERROR_LEN + 1] = {0};
  180. //告警提示
  181. CHAR g_strMsgSelectDel[MAX_ERROR_LEN + 1] = {0};
  182. CHAR g_strMsgConfirmDel[MAX_ERROR_LEN + 1] = {0};
  183. CHAR g_strMsgEditSuccess[MAX_ERROR_LEN + 1] = {0};
  184. CHAR g_strMsgSelectEdit[MAX_ERROR_LEN + 1] = {0};
  185. CHAR g_strMsgUserNotNULL[MAX_ERROR_LEN + 1] = {0};
  186. CHAR g_strMsgPwdNotNULL[MAX_ERROR_LEN + 1] = {0};
  187. CHAR g_strMsgUserInvalid[MAX_ERROR_LEN + 1] = {0};
  188. CHAR g_strMsgConfirmDelRecord[MAX_ERROR_LEN + 1] = {0};
  189. CHAR g_strMsgPrompt[MAX_ERROR_LEN + 1] = {0};
  190. CHAR g_strMsgUserDisable[MAX_ERROR_LEN + 1] = {0};
  191. CHAR g_strMsgDBConnectionSuccess[MAX_ERROR_LEN + 1] = {0};
  192. CHAR g_strMsgDBConnectionFail[MAX_ERROR_LEN + 1] = {0};
  193. //资源字符串
  194. CString g_strSet;
  195. CString g_strAdjust;
  196. CString g_strTestAlarm;
  197. CString g_strExit;
  198. CString g_strExLink;
  199. CString g_strPictureLink;
  200. CString g_strAlarmRed;
  201. CString g_strNoticeRed;
  202. CString g_strDeviceLog;
  203. CString g_strSystemLog;
  204. CString g_strVarManage;
  205. CString g_strUserManage;
  206. CString g_strPwdManage;
  207. CString g_strFirstPage;
  208. CString g_strNativageTree;
  209. CString g_strVarTypeID;
  210. CString g_strSelLine;
  211. CString g_strVarID;
  212. CString g_strVarUid1;
  213. CString g_strVarName1;
  214. CString g_strVarDesc;
  215. CString g_strVarDataLen;
  216. CString g_strOnDesc;
  217. CString g_strOffDesc;
  218. CString g_strMaxValues;
  219. CString g_strMinValues;
  220. CString g_strMaxScale;
  221. CString g_strMinScale;
  222. CString g_strLowerLimit;
  223. CString g_strUpperLimit;
  224. CString g_strNormalState;
  225. CString g_strSetValue;
  226. CString g_strRearm;
  227. CString g_strOffset;
  228. CString g_strUint;
  229. CString g_strCollectFreq;
  230. CString g_strCoef;
  231. CString g_strAlarmLevel;
  232. CString g_strReadWrite;
  233. CString g_strSaveData;
  234. CString g_strCollectThreadData;
  235. CString g_strSaveCurve;
  236. CString g_strIsDDE;
  237. CString g_strRegNum;
  238. CString g_strFuncID;
  239. CString g_strChildID;
  240. CString g_strItemID;
  241. CString g_strSnmpOid;
  242. CString g_strSnmpPublic;
  243. CString g_strDevTypeID;
  244. CString g_strVarStartAddr;
  245. CString g_strRs232Cmd;
  246. CString g_strRs232Type;
  247. CString g_strRs232Index;
  248. CString g_strIndentifyTime;
  249. CString g_strRedectTime;
  250. CString g_strReturnNormalAlarm;
  251. CString g_strShowCurrValue;
  252. CString g_strAlarmVarName;
  253. CString g_strVarUidIsBlank;
  254. CString g_strVarNameIsBlank;
  255. CString g_strVarNameExist;
  256. CString g_strVarName2;
  257. CString g_strSelDev;
  258. CString g_strStoneuTech;
  259. CString g_strPictureFile1;
  260. CString g_strCannotLoseAllForm;
  261. CString g_strStartBit;
  262. CString g_strEndBit;
  263. CString g_strVarBitExist;
  264. CString g_strSelDevice;
  265. CString g_strOldPasswordCannotBlank;
  266. CString g_strOldpasswordInCorrect;
  267. CString g_strpasswordInCorrect;
  268. CString g_strPasswordNotMatch1;
  269. CString g_strAll;
  270. CString g_strDevName;
  271. CString g_strHappentTime1;
  272. CString g_strEventArea;
  273. CString g_strCurrValue;
  274. CString g_strDateTime;
  275. CString g_strHappenTime2;
  276. CString g_strWarnContent;
  277. CString g_strAllDev;
  278. CString g_strEthernet;
  279. CString g_strMywizard;
  280. CString g_strDevNameInUse;
  281. CString g_strUserID;
  282. CString g_strHintUserName;
  283. CString g_strTel;
  284. CString g_strMobile;
  285. CString g_strFax;
  286. CString g_strMail;
  287. CString g_strStatus;
  288. CString g_strUserPwd;
  289. CString g_strUserNameCannotEmpty;
  290. CString g_strPasswordNotMatch2;
  291. CString g_strUserNameExit;
  292. CString g_strID;
  293. CString g_strDevUid2;
  294. CString g_strAlarmStatus;
  295. CString g_strAlarmStatusDesc;
  296. CString g_strNormalStatusID;
  297. CString g_strAlarmStatusIDCannotEmpty;
  298. CString g_strAlarmStatusDescCannotEmpty;
  299. CString g_strNormalStatusIDCannotBlank;
  300. CString g_strAlarmStatusInfoExist;
  301. CString g_strTimesNewRoman;
  302. CString g_strEntityProperty;
  303. CString g_strParamSet;
  304. CString g_strHour;
  305. CString g_strDate;
  306. CString g_strMean;
  307. CString g_strControl;
  308. CString g_strTRACE0;
  309. CString g_strAppwizardCreateApp;
  310. CString g_strPictureFile2;
  311. CString g_strSaveModify;
  312. CString g_strStoneuIspcms;
  313. CString g_strUnSelectEntity;
  314. CString g_strIsNotPrimitive;
  315. CString g_strSelect;
  316. CString g_strTrace2;
  317. CString g_strTline;
  318. CString g_strText;
  319. CString g_strRect;
  320. CString g_strOval;
  321. CString g_strButton;
  322. CString g_strData;
  323. CString g_strLed;
  324. CString g_strBar;
  325. CString g_strCurve;
  326. CString g_strLine;
  327. CString g_strBreaker;
  328. CString g_strSwitch;
  329. CString g_strGrid;
  330. CString g_strBitmap;
  331. CString g_strGif;
  332. CString g_strTransfer;
  333. CString g_strArc;
  334. CString g_strArrow;
  335. CString g_strPoly;
  336. CString g_strMLine;
  337. CString g_strPipe;
  338. CString g_strZhePipe;
  339. CString g_strYPipe;
  340. CString g_strWatch;
  341. CString g_strSingleBar;
  342. CString g_strRoundRect;
  343. CString g_strPie;
  344. CString g_strFan;
  345. CString g_strHisCurve;
  346. CString g_strTable;
  347. CString g_strComposite;
  348. CString g_strConnectionFailed;
  349. CString g_strMoniterSite;
  350. CString g_strDevice;
  351. CString g_strSerial;
  352. CString g_strDataDict;
  353. CString g_strVarSet;
  354. CString g_strScriptManage;
  355. CString g_strSysParam;
  356. CString g_strExitConfirm;
  357. CString g_strIPComoccupy;
  358. CString g_strDevNumCannotBlank;
  359. CString g_strDevUidExist;
  360. CString g_strDevNameExist;
  361. CString g_strSerialPortInUse;
  362. CString g_strIPNotBlank;
  363. CString g_strComcanNot0;
  364. CString g_strNetDev;
  365. CString g_strIPConflict;
  366. CString g_strCannotCreateDirecitory;
  367. CString g_strDelDev;
  368. CString g_strDelView;
  369. CString g_strConfirm;
  370. CString g_strEventType;
  371. CString g_strEventInfo;
  372. CString g_strLowAlarm;
  373. CString g_strHighAlarm;
  374. CString g_strReturnNormal1;
  375. CString g_strReturnNormal2;
  376. CString g_strAlarm;
  377. CString g_strTime;
  378. CString g_strVarName3;
  379. CString g_strColumnName;
  380. CString g_strHeader;
  381. CString g_strFormat;
  382. CString g_strScriptPass;
  383. CString g_strScriptNameCannotEmpty;
  384. CString g_strStrVar;
  385. CString g_strDes;
  386. CString g_strOne;
  387. CString g_strTwo;
  388. CString g_strThree;
  389. CString g_strFour;
  390. CString g_strFine;
  391. CString g_strSix;
  392. CString g_strSeven;
  393. CString g_strEight;
  394. CString g_strNine;
  395. CString g_strTen;
  396. CString g_strHandred;
  397. CString g_strBilion;
  398. CString g_strWan;
  399. CString g_strThousand;
  400. CString g_strYuan1;
  401. CString g_strCent;
  402. CString g_strZero;
  403. CString g_strMinute;
  404. CString g_strYuan2;
  405. CString g_strDevDataLog;
  406. CString g_strOverWriteError;
  407. CString g_strSaveas;
  408. CString g_strTip;
  409. CString g_strScriptError;
  410. CString g_strLogicDoorinate;
  411. CString g_strFontNameCHT;
  412. CString g_strCharacter;
  413. CString g_strNormal;
  414. CString g_strIsNotice;
  415. CString g_strIsModify;
  416. CString g_strParamInit;
  417. CString g_strParamMin;
  418. CString g_strParamMax;
  419. CString g_strOCX;
  420. CString g_strGIF;
  421. CString g_strFlash;
  422. CString g_strRadio;
  423. CString g_strCheck;
  424. CString g_strLogType;
  425. CString g_strModbusType;
  426. CString g_strLogContent;
  427. CString g_strLogHappenTime;
  428. CString g_strNoPermit;
  429. CString g_strModifyPwdOK;
  430. CString g_strMonitorNameIsBlank;
  431. CString g_strMonitorNameCannotDel;
  432. CString g_strInputIsBlank;
  433. CString g_strPastDue;
  434. CString g_strEditMoreVarOK;
  435. CString g_strGroup;
  436. CString g_strDClickFirstOperate;
  437. CString g_strDelGroup;
  438. CString g_strNormalData;
  439. CString g_strAlarmData;
  440. CString g_strDealStatus;
  441. CString g_strAdd;
  442. CString g_strEdit;
  443. CString g_strDel;
  444. CString g_strDevice1;
  445. CString g_strVariant;
  446. CString g_strUser;
  447. CString g_strPwd;
  448. CString g_strTimePlan;
  449. CString g_strRegiserOCX;
  450. HINSTANCE g_hLangDLL;
  451. //视频采集卡动态库输出函数
  452. HINSTANCE g_hVideoLibModule = NULL;
  453. MySTONEU_DLLCreateVideoView pStoneUDllCreateVideoView = NULL;
  454. MySTONEU_DLLGetTotalBoardCount pStoneUDllGetTotalBoardCount = NULL;
  455. MySTONEU_DLLGetTotalDSPCount pStoneUDllGetTotalDSPCount = NULL;
  456. MySTONEU_DLLGetDspCount pStoneUDllGetDSPCount = NULL;
  457. MySTONEU_DLLInitHCCard pStoneUDllInitHCCard = NULL;
  458. MySTONEU_DLLUnInitHCCard pStoneUDllUnInitHCCard = NULL;
  459. MySTONEU_DLLDestroyVideoView pStoneUDllDestroyVideoView = NULL;
  460. MySTONEU_DLLChannelDblClk pStoneUDllChannelDblClk = NULL;
  461. MySTONEU_DLLStartCap pStoneUDllStartCap = NULL;
  462. MySTONEU_DLLStopCap pStoneUDllStopCap = NULL;
  463. MySTONEU_DLLStartMotionDetection pStoneUDllStartMotionDetection = NULL;
  464. MySTONEU_DLLStopMotionDetection pStoneUDllStopMotionDetection = NULL;
  465. MySTONEU_DLLVideoCapCallBack pStoneUDllVideoCapCallBack = NULL;
  466. MySTONEU_DLLSetCapPath pSetCapPath = NULL;
  467. // TTS输出函数
  468. HINSTANCE g_hTTSModule = NULL;
  469. MySTONEU_DLLRegisterTTS pStoneUDllRegisterTTS = NULL;
  470. MySTONEU_DLLUnRegisterTTS pStoneUDllUnRegisterTTS = NULL;
  471. MySTONEU_DLLTxtToWav pStoneUDLLTxtToWav = NULL;
  472. ///////////////////////////////////////////////////////////////////////////////////////////////
  473. ////// 函数名称:GetTokens ///////
  474. ////// 函数说明:根据sDelimiter变量的拆分规则,把sSource源字符串拆分成多个 ///////
  475. ////// 字符串,并传入pTokens变量 ///////
  476. ////// 参数列表:pTokens -- 目标字符串存放指针 ///////
  477. ////// sSource -- 源字符串 ///////
  478. ////// sDelimiter -- 指定的拆分字符 ///////
  479. ////// 作 者:sailing ///////
  480. ////// 创者时间:2008-11-24 ///////
  481. ///////////////////////////////////////////////////////////////////////////////////////////////
  482. void GetTokens(CStringArray * pTokens, CString sSource, CString sDelimiter)
  483. {
  484. pTokens->RemoveAll();
  485. //开始解析
  486. int nStart = 0;
  487. int nLen = sDelimiter.GetLength();
  488. while(true)
  489. {
  490. int i = sSource.Find(sDelimiter, nStart);
  491. if(i < 0)
  492. break;
  493. if(i >= nStart)
  494. {
  495. CString s = sSource.Mid(nStart, i - nStart);
  496. pTokens->Add(s);
  497. }
  498. nStart = i + nLen;
  499. }
  500. //剩下的字符串
  501. if(nStart <= sSource.GetLength())
  502. pTokens->Add(sSource.Mid(nStart));
  503. }
  504. BOOL UserRoomHasPurview( int nRoomID )
  505. {
  506. int i, nSize;
  507. BOOL bFind = FALSE;
  508. nSize = g_vtUserRoomID.size();
  509. for( i = 0; i < nSize; i++ )
  510. {
  511. if( g_vtUserRoomID[i] == nRoomID )
  512. {
  513. bFind = TRUE;
  514. }
  515. }
  516. return bFind;
  517. }