亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mobilecontrol.h

?? 一個(gè)收發(fā)手機(jī)短信的源代碼
?? H
字號:
// MobileControl.h: interface for the CMobileControl class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MOBILECONTROL_H__EEC1B542_F4AC_4CF1_9E7E_8B6423BDB690__INCLUDED_)
#define AFX_MOBILECONTROL_H__EEC1B542_F4AC_4CF1_9E7E_8B6423BDB690__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "HwMobile.h"

/*
			【 手機(jī)與callgle之間的短信通信協(xié)議 】

	1、手機(jī)發(fā)短信給callgle
		1.1 短信腳本:
		1.1.1 #!##<SMSType>#[GroupName1,2,3 ...]#<SMS Content>
			! : 表示發(fā)送結(jié)果需要回應(yīng)
			<SMSType> : 短信類型。公告、公眾、公益
			以上表示短信類型的代碼可以由客戶端程序界面修改。
			[GroupName1] : 第一個(gè)群組名,指定接收的群組,如果不指定,就是發(fā)送給公司所有人。客戶端可以鎖定某些手機(jī)號碼
				具有這種“發(fā)給所有人”的權(quán)限,如果不鎖定即所有手機(jī)都可以發(fā)送。
			[GroupName2] : 第二個(gè)群組名
			<SMS Content> : 短信內(nèi)容本身

		1.1.2 #!#<Recver1,Recver2,Recver3 ...>#<SMS Content>
			! : 表示發(fā)送結(jié)果需要回應(yīng)
			<Recver1> : 第一個(gè)接收者PM帳號
			<Recver2> : 第二個(gè)接收者名字或PM帳號
			<SMS Content> : 短信內(nèi)容本身

		1.1.3 %<OptCommand>,<CtrlCode>%<None SMS>
			<OptCommand> : 操作指令 0 - 無效; 1 - 續(xù)用(續(xù)租); 2 - 注入新安全碼; 3 - 刪除安全碼; 4 - 停用; 5 - 恢復(fù);
				6 - 設(shè)置 Callgle 系統(tǒng)的基本數(shù)據(jù);
			<CtrlCmd> : 控制代碼
			<None SMS> : 不需要輸入任何短信內(nèi)容,輸入也不起作用

		1.1.4 <SMS Content>
			<SMS Content> : 短信內(nèi)容本身
			這種短信未指定短信類型和接收者,如果發(fā)送者是callgle用戶,即公司自己人,那么該短信會(huì)作為公開信息送給
			公司所有人,否則,將送給某一指定用戶,默認(rèn)是系統(tǒng)管理員,可以在客戶端修改這一配置。

		1.1.5 #? 或者 #help
			獲取系統(tǒng)幫助

		1.2 舉例:
			1.3.3 #101#同仁們:今天上海展銷很成功
				私聊短信,發(fā)送給PM帳號為101的用戶,內(nèi)容是“同仁們:今天上海展銷很成功”。
			1.2.2 ##1968#通知:明天下午全公司開作戰(zhàn)會(huì)議
				公告信息,發(fā)送給公司所有人,此時(shí)不需要指定接收者,指定了也不起作用,內(nèi)容是“通知:明天
				下午全公司開作戰(zhàn)會(huì)議”
			1.2.3 現(xiàn)在天氣真熱,大家要做好防暑準(zhǔn)備
				“現(xiàn)在天氣真熱,大家要做好防暑準(zhǔn)備”這條短信會(huì)被送給系統(tǒng)管理員或者某一指定的短信管理員
			1.2.4 #!##公告#開發(fā)部#昨天下午,誰最后一個(gè)離開公司,請告訴我一聲
				發(fā)給"開發(fā)部"的公告信息, 內(nèi)容為"昨天下午,誰最后一個(gè)離開公司,請告訴我一聲"。Callgle系統(tǒng)收到后會(huì)回應(yīng)結(jié)果短信給發(fā)送者
			1.2.5 %2384232*329#9232*934#24#%
			通過手機(jī)給callgle發(fā)送續(xù)用碼

	2、callgle發(fā)短信給手機(jī)
		沒有特殊的規(guī)定,只要指定接收者,便可將要發(fā)送的短信文字發(fā)送出去,超過140個(gè)字符的會(huì)自動(dòng)被分作多條短信來發(fā)送。
		只是每條有空余17個(gè)位置的短信末尾會(huì)加上一句話“sent by \"callgle\"”

	3、callgle自主發(fā)送短信
		在以下幾種情況,callgle會(huì)自主發(fā)送手機(jī)短信
		3.1 當(dāng)用戶不在線,有來電時(shí),如該用戶有“不在線時(shí)可以收到短信通知”的短信權(quán)限,那么callgle會(huì)自主地將該來話信息
			發(fā)送給他的手機(jī)。
		3.2 當(dāng)用戶不在線,有文字傳訊信息或公告信息時(shí),如該用戶有“不在線時(shí)可以收到短信通知”的短信權(quán)限,那么callgle會(huì)自主
			地將該來話信息發(fā)送給他的手機(jī)。
		3.3 當(dāng)有人發(fā)送尋求幫助的信息時(shí),callgle也會(huì)自主發(fā)送包含幫助信息的文字給求助者。

	4、用戶短信權(quán)限定義
		每個(gè)用戶都有一個(gè)短信權(quán)限,分別為:
		4.1 允許發(fā)送短信
		4.2 允許接收短信
		4.2 不在線時(shí)可以收到短信通知
		
*/

#ifndef _2Lines
// 收到短消息時(shí)回調(diào)這個(gè)函數(shù)來處理
typedef LRESULT (*FUNC_ReceivedSMS) ( SM_PARAM *pSMRecv, WPARAM wParam, LPARAM lParam );
// 發(fā)送短消息完成時(shí)回調(diào)這個(gè)函數(shù)來處理
typedef LRESULT (*FUNC_SendSMSEnd) ( ENUM_ERROR_TYPE eResult, WPARAM wParam, LPARAM lParam );

// 兩次選擇電話本的時(shí)間間隔 (秒),否則選擇將失敗
#define SELECT_PHONEBOOK_INTVERVAL	2
// 最大短信隊(duì)列數(shù)
#define MAX_SMSQUEUE_NUM	3000
// 初始化接口的時(shí)間間隔 ( 秒 )
#ifdef _DEBUG
#define INITIALIZE_INTERFACE_INTERVAL	1
#else
#define INITIALIZE_INTERFACE_INTERVAL	3
#endif
// 完全相同的短信發(fā)送必須間隔的時(shí)長(秒)
#define SAME_SMS_INTERVAL_TIMELONG		60

typedef LRESULT (*FUNC_HandleMobileStatusChange) ( ENUM_ERROR_TYPE eMobileStatus_Old, ENUM_ERROR_TYPE eMobileStatus_New );

class DLL_INTERNAL CMobileControl : public CHwMobile
{
public:
	HANDLE m_EvtThreadCanRun;				// 如果該事件被置位表示線程可以運(yùn)行了
	t_MobileParameter* m_pMobileParameter;
	DWORD* m_pdwSentSMSCount;
	CHwMysql_PMData* m_pHwMysql_PMData;
	CHwMysql_PMMsg* m_pHwMysql_PMMsg;
	CHwMysql_PMFullPN* m_pHwMysql_PMFullPN;
	BOOL SMSModuleEnable ( BOOL bEnable );
	// 運(yùn)行狀態(tài)
	typedef enum _enum_run_state
	{
		ENUM_RunState_Start,				// 開始
		ENUM_RunState_Init,					// 初始化
		ENUM_RunState_Runing,				// 正在運(yùn)行
		ENUM_RunState_NUM,
	} ENUM_RunState;

	static LPCTSTR GetObjectName();
	// 待發(fā)送的短信隊(duì)列
	typedef struct _sms_send_queue
	{
		SM_PARAM sm;						// 要發(fā)送的短信
		DWORD dwPMAccount_Sender;
		FUNC_SendSMSEnd Proc_SendSMSEnd;	// 發(fā)送完成時(shí)通過該回調(diào)函數(shù)來通知請求者
		WPARAM wParam;
		LPARAM lParam;
		ENUM_MOBILESMSTYPE eMobileSMSType;
	} t_SMS_SendQueue;
	typedef CArray<t_SMS_SendQueue,t_SMS_SendQueue&> t_Ary_SMS_SendQueue;

	CMobileControl(LOG_FUNC ExternLog);
	virtual ~CMobileControl();
	inline void SetParameter ( FUNC_ReceivedSMS Proc_ReceivedSMS, WPARAM wParam, LPARAM lParam )
	{
		m_Proc_ReceivedSMS = Proc_ReceivedSMS;
		m_wParam = wParam;
		m_lParam = lParam;
	}
	BOOL ThreadProc_Mobile();
	int Runing();
	ENUM_ERROR_TYPE CMobileControl::SendSMS (
		ENUM_MOBILESMSTYPE eMobileSMSType,
		LPCTSTR lpszReceiverMobileNO,
		LPCTSTR lpszSMSContent_Byte,
		WCHAR *wzSMSContent_Wide=NULL,
		DWORD dwPMAccount_Sender=INVALID_PMACCOUNT,
		FUNC_SendSMSEnd Proc_SendSMSEnd=NULL,
		WPARAM wParam=NULL,
		LPARAM lParam=NULL
	);
	ENUM_ERROR_TYPE CMobileControl::SendOnePartSMS (
		ENUM_MOBILESMSTYPE eMobileSMSType,
		LPCTSTR lpszReceiverMobileNO,
		BOOL bInternationalMobileNO,
		LPCTSTR lpszSMSContent_Byte,
		WCHAR *wzSMSContent_Wide=NULL,
		DWORD dwPMAccount_Sender=INVALID_PMACCOUNT,
		FUNC_SendSMSEnd Proc_SendSMSEnd=NULL,
		WPARAM wParam=NULL,
		LPARAM lParam=NULL
	);
	BOOL Init (
		BOOL bRunAsServer,			// 是否當(dāng)作服務(wù)器運(yùn)行
		BOOL bRecvSMSEnable,		// 是否允許自動(dòng)收取手機(jī)短信
		HANDLE hEvt_TerminateSys,
		int nComNO,
		int nBaudRate
	);
	t_Ary_PhoneBook* ReadPhoneBook ();
	int ParseSMSRecved ( 
		IN LPCTSTR lpszSMSContent,
		IN LPCTSTR lpszSenderMobileNO,
		OUT CStringArray **ppStrAry_GroupName_Recver,
		OUT CStringArray **ppStrAry_PMAccount_Recver,
		OUT char *szSMSContent,
		int nSMSContentSize,
		BOOL &bRequireEchoSMS,
		LPCTSTR lpszSendTime
	);
	void ClearSendQueue ();
	ENUM_ERROR_TYPE GetMobileStatus ();
	FUNC_HandleMobileStatusChange m_Proc_HandleMobileStatusChange;
	WPARAM m_paraHandleMobileStatusChange;
	int IsMobileNO ( LPCTSTR lpszPhoneNO, t_MobileNOHead *pMobileNOHead=NULL, CString *pShortMobileNO=NULL );
	t_Ary_MobileNOHead m_Ary_MobileNOHead;
	void ConfigParameter ( t_Ary_MobileNOHead *pAry_MobileNOHead );
	ENUM_ERROR_TYPE StandardMobileNO ( CString &csMobileNO, BOOL *pbInternationalMobileNO=NULL, CString *pSimplifyMobileNO=NULL );

private:
	LRESULT ChangeMobileStatus( ENUM_ERROR_TYPE eMobileStatus_New );
	int m_InitializeInterfaceInterval;
	CString m_csPartString;
	ENUM_RunState m_eRunState;
	BOOL m_bRecvSMSEnable;
	BOOL m_bRunAsServer;
	BOOL ReadExistSMSInMobile ();
	BOOL SendSMSQueue ();
	BOOL ReadNewSMS ();
	CString StandardSMSContent ( LPCTSTR lpszSMSContent );
	BOOL SendOneSMSQueue ( t_SMS_SendQueue &SMS_SendQueue );
	int HandleSMSCtrlCode ( 
		IN LPCTSTR lpszSMSContent,
		OUT CStringArray **ppStrAry_PMAccount_Recver,
		OUT char *szSMSContent,
		int nSMSContentSize
	);
	int CompareNOHead ( LPCTSTR lpszPhoneNO, LPCTSTR lpszPhoneNOHead, BOOL bSikpZeroBeforeCompare );
	LPCTSTR CheckHeadStr ( LPCTSTR lpszStr, LPCTSTR lpszHead1, LPCTSTR lpszHead2, LPCTSTR lpszHead3 );
	int HandleSMSCommon ( 
		IN LPCTSTR lpszSMSContent,
		IN LPCTSTR lpszSenderMobileNO,
		OUT CStringArray **ppStrAry_GroupName_Recver,
		OUT CStringArray **ppStrAry_PMAccount_Recver,
		OUT char *szSMSContent,
		int nSMSContentSize,
		ENUM_MOBILESMSTYPE &eMobileSMSType
	);
	BOOL ParseRecverAndContent (
		char *pHandlePos,
		OUT CStringArray **ppStrAry_Recver,
		OUT char *szSMSContent,
		int nSMSContentSize
	);
	int HandleSMSMultiRecver (
		IN LPCTSTR lpszSMSContent,
		IN LPCTSTR lpszSenderMobileNO,
		OUT CStringArray **ppStrAry_GroupName_Recver,
		OUT char *szSMSContent,
		int nSMSContentSize
	);
	int HandleSMSSingleRecver (
		IN LPCTSTR lpszSMSContent,
		IN LPCTSTR lpszSenderMobileNO,
		OUT CStringArray **ppStrAry_PMAccount_Recver,
		OUT char *szSMSContent,
		int nSMSContentSize
	);
	BOOL InitMobileControl ();
	BOOL InitMobileModule ( int &nComNO );
	BOOL InitMobileOneCOM ( int nComNO );
	BOOL IsSameSMSType ( CString &csSMSType, CString csSMSType_Bulletin );
	CString SimplifyMobileNO ( LPCTSTR lpszMobileNO );
	ENUM_ERROR_TYPE InfillSMParam ( 
		OUT SM_PARAM &SmParam,
		IN CString csReceiverMobileNO
	);
	ENUM_ERROR_TYPE StandardMobileNOHead ( CString &csMobileNOHead );
	int FindFromMobileNOHeadAry (
		LPCTSTR lpszPhoneNO,
		CString &csCountryCode,
		CString &csAreaCode
	);

	HANDLE m_hThread_Mobile;
	// 短消息接收處理時(shí)的回調(diào)函數(shù)和參數(shù)
	FUNC_ReceivedSMS m_Proc_ReceivedSMS;
	WPARAM m_wParam;
	LPARAM m_lParam;

	// 短消息發(fā)送隊(duì)列
	t_Ary_SMS_SendQueue m_Ary_SMS_SendQueue;
	CCriticalSection m_CSFor_SMSSendQueue;
	HANDLE m_hEvt_SMSSendQueue;

	ENUM_ERROR_TYPE m_eMobileStatus;			// 手機(jī)狀態(tài),如果是禁用了手機(jī)模塊,這個(gè)狀態(tài)值一直是“禁用”,直到被控制碼啟用以后才會(huì)改變
	ENUM_ERROR_TYPE m_eMobileStatus_Real;		// 手機(jī)的真實(shí)狀態(tài),不管是禁用還是啟用,手機(jī)當(dāng)前的狀態(tài)就保存到此了
	CCriticalSection m_CSFor_MobileStatus;

	HANDLE m_hEvt_TerminateSys;
	int m_nComNO_UserDefine;
protected:
	virtual BOOL HandleRecvSMS(SM_PARAM *pSMRecv);
	virtual int HandleCOMRW ( int nRet );
	void StandardShortMobileNO ( IN OUT CString &csShortMobileNO, IN LPCTSTR lpszMobileNOHead );
};

#endif

#endif // !defined(AFX_MOBILECONTROL_H__EEC1B542_F4AC_4CF1_9E7E_8B6423BDB690__INCLUDED_)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩激情一区| 激情综合色播五月| 91性感美女视频| 最新成人av在线| 91日韩精品一区| 亚洲电影你懂得| 91精品国产乱| 国产盗摄视频一区二区三区| 久久精品一区二区三区不卡牛牛| 麻豆免费看一区二区三区| www日韩大片| 99国产精品一区| 午夜精品福利在线| 日韩欧美中文一区二区| 91在线你懂得| 国产精品久久久久久久久免费丝袜| 亚洲一级二级三级在线免费观看| 成人免费视频视频| 亚洲人妖av一区二区| 亚洲人成网站在线| 99精品国产热久久91蜜凸| 国产欧美日韩另类视频免费观看| 亚洲精品久久嫩草网站秘色| 久久九九全国免费| 日韩一级黄色大片| 7777精品伊人久久久大香线蕉最新版| 91浏览器入口在线观看| 不卡的av网站| 成人久久久精品乱码一区二区三区| 久久99久久久欧美国产| 日本三级亚洲精品| 午夜伊人狠狠久久| 亚洲一区二区五区| 一区二区三区在线观看国产| 亚洲欧美自拍偷拍色图| 国产精品成人免费| 中文字幕高清一区| 中文字幕精品在线不卡| 国产精品毛片久久久久久久| 国产精品美女视频| 国产精品乱人伦一区二区| 国产午夜精品一区二区三区四区| 久久久午夜精品| 久久久久久久久97黄色工厂| 国产女同性恋一区二区| 日本一区二区三区免费乱视频 | 99精品国产视频| 成人白浆超碰人人人人| 成人美女视频在线观看| www.欧美精品一二区| 99re热这里只有精品视频| 一本色道久久综合亚洲精品按摩| 一本色道久久综合亚洲aⅴ蜜桃 | 91美女在线视频| 99精品国产视频| 欧美这里有精品| 欧美精品乱码久久久久久按摩| 欧美高清性hdvideosex| 欧美成va人片在线观看| 国产亚洲精品免费| 国产精品成人午夜| 夜夜精品视频一区二区| 日本网站在线观看一区二区三区 | av在线播放一区二区三区| 不卡的av网站| 欧美色男人天堂| 日韩欧美一二三四区| 久久久九九九九| 亚洲欧美国产77777| 亚洲二区在线视频| 麻豆国产精品777777在线| 国产在线看一区| 91欧美一区二区| 8x8x8国产精品| 久久精品视频一区二区| 亚洲日本成人在线观看| 全部av―极品视觉盛宴亚洲| 国产成人av电影免费在线观看| 91视频免费观看| 日韩三级电影网址| 国产精品水嫩水嫩| 午夜久久久久久久久| 国产精品18久久久久久久久久久久 | 日本不卡一区二区三区| 懂色av一区二区夜夜嗨| 91成人网在线| 久久久国产精品午夜一区ai换脸| 亚洲欧洲制服丝袜| 久久国产视频网| 色婷婷综合久色| 2019国产精品| 亚洲国产美国国产综合一区二区| 黄色日韩网站视频| 91视频免费播放| 久久久久久夜精品精品免费| 亚洲综合一二三区| 豆国产96在线|亚洲| 日韩午夜av一区| 一区二区三区影院| 国产传媒久久文化传媒| 欧美丰满一区二区免费视频| 国产精品区一区二区三区| 日韩在线一区二区| 91日韩一区二区三区| 国产午夜精品一区二区三区嫩草 | 欧美aaaaaa午夜精品| 99视频在线观看一区三区| 欧美成人午夜电影| 亚洲v中文字幕| 91影视在线播放| 国产日韩欧美a| 久久99精品视频| 8v天堂国产在线一区二区| 亚洲精品一二三| 成人动漫视频在线| 久久久不卡网国产精品二区| 丝袜亚洲另类欧美| 在线观看亚洲精品| 中文字幕一区二区视频| 国产一区二区免费看| 日韩欧美黄色影院| 日韩高清一区二区| 欧美日韩精品系列| 一区二区久久久| 91免费看`日韩一区二区| 国产精品女同互慰在线看| 国产成人av福利| 国产亚洲精品资源在线26u| 麻豆91免费观看| 欧美一区二区免费视频| 日韩和欧美一区二区| 欧美日韩高清一区| 午夜欧美一区二区三区在线播放| 欧美午夜精品久久久久久孕妇| 亚洲人一二三区| 91无套直看片红桃| 亚洲男女一区二区三区| 91年精品国产| 国产精品久久看| av电影天堂一区二区在线观看| 日本一区免费视频| 高清不卡在线观看| 国产精品免费av| 91亚洲精华国产精华精华液| 国产精品美女www爽爽爽| 成人免费观看av| 亚洲免费在线播放| 欧美色综合网站| 日韩av一二三| 久久五月婷婷丁香社区| 国产精品自拍一区| 国产精品视频一二三区| 91在线观看污| 五月天一区二区三区| 欧美一级视频精品观看| 国产在线麻豆精品观看| 国产精品国产馆在线真实露脸| 色一情一乱一乱一91av| 午夜久久久影院| 久久综合九色综合欧美就去吻 | 午夜激情一区二区| 欧美成人在线直播| 国产91精品在线观看| 亚洲人午夜精品天堂一二香蕉| 欧美视频一区在线| 久久草av在线| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 日本韩国一区二区三区视频| 全国精品久久少妇| 国产农村妇女毛片精品久久麻豆 | 偷拍亚洲欧洲综合| 久久综合成人精品亚洲另类欧美 | 国产欧美日韩综合| 色av一区二区| 精品一区二区三区免费观看| 国产精品入口麻豆原神| 欧美日韩一区二区三区在线| 国内精品久久久久影院薰衣草 | 欧美日韩国产成人在线免费| 激情久久五月天| 亚洲精品日日夜夜| 精品福利在线导航| 91精品福利视频| 国产一区二区在线视频| 一区二区三区在线观看动漫| 亚洲精品在线网站| 欧洲一区二区三区在线| 国产在线视频一区二区三区| 亚洲一本大道在线| 国产人成亚洲第一网站在线播放| 欧美三级中文字幕| 成人爽a毛片一区二区免费| 日韩精品亚洲一区二区三区免费| 中文一区二区完整视频在线观看 | 精品视频在线免费| 成人一二三区视频| 日韩电影免费在线看| 亚洲欧美日韩中文播放| 国产午夜亚洲精品午夜鲁丝片| 欧美军同video69gay|