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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? myqqpacket.h

?? 如果應用程序在共享 DLL 中使用 MFC
?? H
字號:
#include "../MicroQQ/qqlib/QQDefine.h"

CNoOpenQQGui *m_lpNoOpenQQGui;

static void CQQClient_GetLevel(CQQClientBase *This){
	CQQPacketBase *lpPacket=(*m_lpQQPlugin->lpNewQQPacket)();
	lpPacket->Write_Byte(0x02);
	lpPacket->Write_DWord(This->m_QQ);
	CQQPacketBase *lpPushPacket=(*m_lpQQPlugin->lpNewQQPacket)();
	lpPushPacket->MakeCmdPacket(This,QQ_CMD_FRIEND_LEVEL_OP,lpPacket->GetBuffer(),lpPacket->Size());
	This->PushPacket(lpPushPacket);
	lpPacket->Delete();
}

static void UpdateQQLevelText(CQQClientBase *This){
	char buf[128];
	ltoa(This->m_lpClientDataEx->m_Level,buf,10);
	m_lpNoOpenQQGui->m_QQListView.SetColLevel(This->m_QQ,buf);
	sprintf(buf,"%d天",This->m_lpClientDataEx->m_Level_OnLineDay);
	m_lpNoOpenQQGui->m_QQListView.SetColOnline(This->m_QQ,buf);
	sprintf(buf,"%d天",This->m_lpClientDataEx->m_Level_NextLevelDay);
	m_lpNoOpenQQGui->m_QQListView.SetColSpace(This->m_QQ,buf);
}

static void CQQClient_OnGetLevel(CQQClientBase *This,CQQPacketBase *lpRecvPacket){
	CQQPacketBase *lpPacket=(*m_lpQQPlugin->lpNewQQPacket)();
	if(lpPacket->Decrypt(lpRecvPacket,This->m_KeyData)){
		if(lpPacket->Read_Byte()==0x02){
			if(lpPacket->Read_DWord()==This->m_QQ){
				lpPacket->Read_Word();//可能是在線時間吧
				This->m_lpClientDataEx->m_Level_OnLineDay=lpPacket->Read_Word();//在線天數
				This->m_lpClientDataEx->m_Level=lpPacket->Read_Word();//等級
				This->m_lpClientDataEx->m_Level_NextLevelDay=lpPacket->Read_Word();//升級剩余天數
				UpdateQQLevelText(This);
			}
		}
	}
	lpPacket->Delete();
}

static void CQQClient_OnEvent(CQQClientBase *This,DWORD Event,WPARAM wParam,LPARAM lParam){
	switch(Event){
		case QQ_CMD_LOGOUT:
			m_lpNoOpenQQGui->m_QQListView.SetColStatus(This->m_QQ,"[...]");
			break;
		case QQ_CMD_REQUEST_LOGIN_TOKEN:
			m_lpNoOpenQQGui->m_QQListView.SetColStatus(This->m_QQ,"登陸中...");
			break;
		case QQ_CMD_LOGIN:
			switch(wParam){
				case QQ_REPLY_OK:
					m_lpNoOpenQQGui->m_QQListView.SetColStatus(This->m_QQ,"登陸成功");
					m_lpNoOpenQQGui->OnTimer();
					CQQClient_GetLevel(This);
					break;
				case QQ_REPLY_LOGIN_PASSWORD_ERROR:
					{
						This->Logout();
						LPSTR lpText=(LPSTR)lParam;
						if(strstr(lpText,"密碼")){
							m_lpNoOpenQQGui->m_QQListView.SetColStatus(This->m_QQ,"密碼錯誤");
						}else if(strstr(lpText,"高峰")){
							m_lpNoOpenQQGui->m_QQListView.SetColStatus(This->m_QQ,"上線高峰");
						}else{
							m_lpNoOpenQQGui->m_QQListView.SetColStatus(This->m_QQ,"其它錯誤");
						}
					}
					break;
			}
			break;
	}
}

static BOOL (*m_lpOldOnRecvCmd)(CQQClientBase *This,TQQPacketRecvHead *lpRecvHead,CQQPacketBase *lpRecvPacket)=NULL;

static BOOL CQQClient_OnRecvCmd(CQQClientBase *This,TQQPacketRecvHead *lpRecvHead,CQQPacketBase *lpRecvPacket){
	switch(lpRecvHead->m_Cmd){
		case QQ_CMD_FRIEND_LEVEL_OP:CQQClient_OnGetLevel(This,lpRecvPacket);break;
		case QQ_CMD_CHANGE_STATUS:
			{
				char buf[32];
				strcpy(buf,This->m_Status==QQ_STATUS_ONLINE?"[在線]":
						(This->m_Status==QQ_STATUS_AWAY?"[離開]":"[隱身]") );
				if(This->m_UseTM)strcat(buf,"TM");
				m_lpNoOpenQQGui->m_QQListView.SetColStatus(This->m_QQ,buf);
			}
			//break;//主程序需要此消息,所以不退出
		default:
			return (*m_lpOldOnRecvCmd)(This,lpRecvHead,lpRecvPacket);
	}
	return TRUE;
}

#include <time.h>
static void CQQClient_OnRecvIM2(CQQClientBase *This,CQQPacketBase *lpRecvPacket,TRecvIMHead *lpRecvIMHead){
	switch(lpRecvIMHead->m_Result){
		case 0x61://2005 B3
			lpRecvIMHead->m_Result=lpRecvPacket->Read_Word();
			lpRecvPacket->Skip(5);//2005 B3 未知
			if(lpRecvIMHead->m_Result!=QQ_RECV_IM_STRANGER &&
				lpRecvIMHead->m_Result!= QQ_RECV_IM_FRIEND)break;//普通消息
		case QQ_RECV_IM_STRANGER:
		case QQ_RECV_IM_FRIEND://普通消息
			{
				WORD sender_ver=lpRecvPacket->Read_Word();
				DWORD sender_uid=lpRecvPacket->Read_DWord();
				DWORD receiver_uid=lpRecvPacket->Read_DWord();
				lpRecvPacket->Skip(QQ_KEY_LENGTH);//session_md5
				WORD normal_im_type=lpRecvPacket->Read_Word();
				switch(normal_im_type){
					case QQ_IM_TYPE_TEXT:
					{
						WORD id=lpRecvPacket->Read_Word();
						time_t tm=lpRecvPacket->Read_DWord();
						lpRecvPacket->Read_Byte();//未知
						BYTE icon=lpRecvPacket->Read_Byte();
						lpRecvPacket->Read_DWord();//字體屬性
						lpRecvPacket->Read_DWord();//分片
						BYTE replyType=lpRecvPacket->Read_Byte();//自動回復
						if(replyType==QQ_IM_AUTO_REPLY)break;
						if(This->m_lpClientDataEx->m_RetMsg[0]){
							CQQPacketBase *lpPacket=This->GetSendIMMsgPacket(sender_uid,This->m_lpClientDataEx->m_RetMsg,"宋體",rand()/*0x0000FF*/,0x9,QQ_IM_AUTO_REPLY);
							This->PushPacket(lpPacket);
						}
						char buf[1024];
						if(This->m_lpClientDataEx->m_OtherQQ>10000){
							_snprintf(buf,sizeof(buf),
								"%s\r\n"
								"-----------------------------------------\r\n"
								"發送者:%d       轉發者:%d",
								lpRecvPacket->GetCurrentBuffer(),
								sender_uid,This->m_QQ);
							CQQPacketBase *lpPacket=This->GetSendIMMsgPacket(This->m_lpClientDataEx->m_OtherQQ,buf,"宋體",0xDC7C44,0x9,QQ_IM_AUTO_REPLY);
							This->PushPacket(lpPacket);
						}
					}
					break;
				}
			}
			break;
		case QQ_RECV_IM_SYS_MESSAGE:
			if(lpRecvPacket->Read_Byte()==QQ_RECV_IM_KICK_OUT){//我被踢出
				if(lpRecvPacket->Read_Byte()==0x33){
					if(This->m_lpClientDataEx->m_AutoOff){
						This->Logout();
						m_lpNoOpenQQGui->m_QQListView.SetColStatus(This->m_QQ,"別處上線");
					}else{
						m_lpNoOpenQQGui->m_QQListView.SetColStatus(This->m_QQ,"搶線中...");
					}
				}else{
					m_lpNoOpenQQGui->m_QQListView.SetColStatus(This->m_QQ,"未知/重登陸中..");
					This->m_KeepAliveFail=10;
				}
			}
			break;
	}
}

void AttachQQClient(CQQClientBase *lpClient){
	lpClient->ReAllocDataEx(sizeof(TQQClientDataEx));
	memset(lpClient->m_lpClientDataEx,0,sizeof(TQQClientDataEx));
	if(m_lpOldOnRecvCmd==0)m_lpOldOnRecvCmd=lpClient->m_lpOnRecvCmd;
	lpClient->m_lpOnRecvCmd=CQQClient_OnRecvCmd;
	lpClient->m_lpOnRecvIM2=CQQClient_OnRecvIM2;
	lpClient->m_lpOnEvent=CQQClient_OnEvent;

	CQQClient_OnEvent(lpClient,QQ_CMD_LOGOUT,0,0);
}


void CQQConfig_OnLoadAddQQClient(CQQConfigBase *This,IXMLDOMElement *lpElement){
	CQQClientBase *lpQQClient=(*m_lpQQPlugin->lpNewQQClient)(m_lpNoOpenQQGui->m_lpQQGuiWnd);
	(*This->m_lpOnLoadQQClient)(lpQQClient,lpElement);
	m_lpNoOpenQQGui->m_QQListView.AddQQ(lpQQClient);
	AttachQQClient(lpQQClient);
	CKVariant Var;
						lpElement->getAttribute(L"自動登陸",Var);
	lpQQClient->m_lpClientDataEx->m_AutoLogin=(long)Var;
						lpElement->getAttribute(L"自動下線",Var);
	lpQQClient->m_lpClientDataEx->m_AutoOff=(long)Var;
						lpElement->getAttribute(L"轉發QQ",Var);
	lpQQClient->m_lpClientDataEx->m_OtherQQ=(long)Var;
						lpElement->getAttribute(L"保存消息",Var);
	lpQQClient->m_lpClientDataEx->m_SaveMsg=(long)Var;
						lpElement->getAttribute(L"等級",Var);
	lpQQClient->m_lpClientDataEx->m_Level=(WORD)(long)Var;
						lpElement->getAttribute(L"在線天數",Var);
	lpQQClient->m_lpClientDataEx->m_Level_OnLineDay=(WORD)(long)Var;
						lpElement->getAttribute(L"升級天數",Var);
	lpQQClient->m_lpClientDataEx->m_Level_NextLevelDay=(WORD)(long)Var;
						lpElement->getAttribute(L"自動回復",Var);
	#define RETMSGLEN	(sizeof(lpQQClient->m_lpClientDataEx->m_RetMsg))
	char RetMsg[RETMSGLEN];
	KenComStr::BSTRToAnsi(Var,RetMsg,RETMSGLEN);
	for(int i=0,j=0;RetMsg[i] && j<(RETMSGLEN-1);i++){
		if(RetMsg[i]==0x0A)
			lpQQClient->m_lpClientDataEx->m_RetMsg[j++]=0x0D;
		lpQQClient->m_lpClientDataEx->m_RetMsg[j++]=RetMsg[i];
	}
	lpQQClient->m_lpClientDataEx->m_RetMsg[j]=0;
	if(lpQQClient->m_lpClientDataEx->m_AutoLogin)lpQQClient->Login();
	if(lpQQClient->m_lpClientDataEx->m_Level_NextLevelDay)
		UpdateQQLevelText(lpQQClient);
}

void (*m_lpOldOnSaveQQClient)(CQQClientBase *lpQQClientBase,IXMLDOMElement *lpElement)=0;

void CQQConfig_OnSaveQQClient(CQQClientBase *lpQQClientBase,IXMLDOMElement *lpElement){
	(*m_lpOldOnSaveQQClient)(lpQQClientBase,lpElement);
	::tagVARIANT Var;						V_VT(&Var)=VT_I4;
	V_I4(&Var)=lpQQClientBase->m_lpClientDataEx->m_AutoLogin;
						lpElement->setAttribute(L"自動登陸",Var);
	V_I4(&Var)=lpQQClientBase->m_lpClientDataEx->m_AutoOff;
						lpElement->setAttribute(L"自動下線",Var);
	V_I4(&Var)=lpQQClientBase->m_lpClientDataEx->m_OtherQQ;
						lpElement->setAttribute(L"轉發QQ",Var);
	V_I4(&Var)=lpQQClientBase->m_lpClientDataEx->m_SaveMsg;
						lpElement->setAttribute(L"保存消息",Var);
	V_I4(&Var)=lpQQClientBase->m_lpClientDataEx->m_Level;
						lpElement->setAttribute(L"等級",Var);
	V_I4(&Var)=lpQQClientBase->m_lpClientDataEx->m_Level_OnLineDay;
						lpElement->setAttribute(L"在線天數",Var);
	V_I4(&Var)=lpQQClientBase->m_lpClientDataEx->m_Level_NextLevelDay;
						lpElement->setAttribute(L"升級天數",Var);
						lpElement->setAttribute(L"自動回復",CKVariant(lpQQClientBase->m_lpClientDataEx->m_RetMsg));
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区播放老司机| 综合在线观看色| 在线播放中文一区| 日本黄色一区二区| 91国产成人在线| 色999日韩国产欧美一区二区| 成人免费不卡视频| 99在线视频精品| 91丨九色丨尤物| 91久久精品一区二区| 欧美日韩一区成人| 欧美人与z0zoxxxx视频| 欧美一区二区三区视频| 精品国产凹凸成av人网站| 久久综合色一综合色88| 国产日韩精品视频一区| 国产精品视频免费看| 中文字幕综合网| 亚洲午夜精品网| 午夜精品久久久久久久久久久 | 亚洲一二三四久久| 亚洲在线中文字幕| 五月天婷婷综合| 麻豆成人免费电影| 国产精品夜夜爽| 91在线视频播放| 欧美午夜影院一区| 欧美一区二区高清| 久久久久久久久久久黄色| 中文在线一区二区| 洋洋av久久久久久久一区| 婷婷久久综合九色国产成人| 久久99热狠狠色一区二区| 国产精品1区2区3区| 99视频超级精品| 欧美日韩一区二区三区在线看| 制服丝袜亚洲网站| 久久久精品免费观看| 国产精品家庭影院| 丝袜亚洲另类欧美| 国产真实精品久久二三区| 不卡的av电影在线观看| 欧美午夜精品久久久久久孕妇| 日韩一区二区在线播放| 中文一区一区三区高中清不卡| 夜色激情一区二区| 国产一区高清在线| 欧洲另类一二三四区| 精品对白一区国产伦| 1区2区3区精品视频| 奇米精品一区二区三区在线观看| 成人一区在线看| 在线成人高清不卡| 国产精品视频一二三区| 肉肉av福利一精品导航| 国产米奇在线777精品观看| 色综合天天做天天爱| 欧美变态tickle挠乳网站| 最新日韩av在线| 精品一区二区在线看| 一本在线高清不卡dvd| 精品99999| 亚洲一二三四久久| 成人永久看片免费视频天堂| 91麻豆精品国产综合久久久久久| 国产精品午夜春色av| 麻豆久久一区二区| 91黄色免费版| 国产精品三级av| 蜜桃精品在线观看| 在线视频一区二区三| 国产日韩综合av| 激情综合五月婷婷| 7777精品伊人久久久大香线蕉完整版 | 日本乱码高清不卡字幕| 精品99999| 日韩精品免费视频人成| 色综合天天综合网天天狠天天 | 久草精品在线观看| 欧美精品在线观看播放| 一区二区三区免费看视频| 懂色av一区二区三区免费观看 | 国产精品丝袜黑色高跟| 久久国产尿小便嘘嘘| 欧美日本在线播放| 亚洲最快最全在线视频| 菠萝蜜视频在线观看一区| 久久奇米777| 久久99久久久欧美国产| 欧美一区二视频| 五月天精品一区二区三区| 91福利视频久久久久| 中文字幕亚洲不卡| 成人美女视频在线观看18| 久久人人爽爽爽人久久久| 麻豆精品精品国产自在97香蕉| 欧美人牲a欧美精品| 亚洲成人在线网站| 777亚洲妇女| 日韩avvvv在线播放| 欧美日韩精品欧美日韩精品 | 风间由美一区二区av101| 精品国产青草久久久久福利| 美女一区二区视频| 日韩女优制服丝袜电影| 蜜臀av一区二区| 精品少妇一区二区三区视频免付费| 日韩精品乱码免费| 欧美大白屁股肥臀xxxxxx| 蜜桃一区二区三区四区| 精品久久久久久亚洲综合网| 久久精品国产第一区二区三区| 4438x成人网最大色成网站| 免费看欧美女人艹b| 欧美电影精品一区二区| 久久99久久久欧美国产| 国产无人区一区二区三区| 成人免费毛片aaaaa**| 亚洲视频免费在线| 欧美日韩性生活| 日本网站在线观看一区二区三区| 欧美一区二区不卡视频| 伦理电影国产精品| 国产日韩高清在线| 色中色一区二区| 日韩精品91亚洲二区在线观看| 3atv一区二区三区| 国产经典欧美精品| 亚洲欧美日韩电影| 欧美日韩大陆一区二区| 精品综合免费视频观看| 日本一区二区成人| 欧美亚男人的天堂| 免费观看成人鲁鲁鲁鲁鲁视频| 精品国产免费久久| caoporn国产精品| 无码av中文一区二区三区桃花岛| 精品sm捆绑视频| 99精品国产热久久91蜜凸| 亚洲国产成人av好男人在线观看| 日韩区在线观看| 99久久久无码国产精品| 亚洲国产日日夜夜| 久久久久国产精品人| 色先锋aa成人| 精品中文av资源站在线观看| 中文字幕免费一区| 欧美人伦禁忌dvd放荡欲情| 精品一区二区三区免费播放| 国产精品美女久久久久久| 欧美在线观看18| 国产一区二区三区在线观看精品 | 91年精品国产| 久久99精品久久久久久动态图| 国产精品国产三级国产三级人妇| 欧美视频在线播放| 国产成人丝袜美腿| 日韩在线观看一区二区| 中文字幕一区二区5566日韩| 日韩一级完整毛片| 91色综合久久久久婷婷| 国产一区二区按摩在线观看| 亚洲国产欧美在线| 亚洲国产精品t66y| 欧美一区二区三区播放老司机| 99精品国产一区二区三区不卡| 美美哒免费高清在线观看视频一区二区| 中文字幕一区二区三区乱码在线| 日韩免费看网站| 欧美私模裸体表演在线观看| 国产高清不卡二三区| 首页国产欧美久久| 亚洲激情成人在线| 国产精品网站在线| 精品欧美久久久| 欧美日韩视频不卡| 色一情一伦一子一伦一区| 国产精品综合一区二区三区| 日精品一区二区| 亚洲国产毛片aaaaa无费看 | 高清国产午夜精品久久久久久| 午夜精品福利一区二区三区蜜桃| 中文成人综合网| 久久蜜桃一区二区| 日韩亚洲欧美一区| 欧美一区二区在线免费播放| 色哟哟一区二区在线观看 | 欧美一区三区四区| 欧美日韩另类国产亚洲欧美一级| 成人av在线影院| 国产精品亚洲综合一区在线观看| 麻豆视频观看网址久久| 日av在线不卡| 亚洲一二三专区| 亚洲综合一二区| 一区二区三区蜜桃| 亚洲免费观看高清| 亚洲精品乱码久久久久久久久 | 国产午夜亚洲精品理论片色戒 | 亚洲伊人色欲综合网|