亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产成人av一区二区三区在线观看| 精品乱人伦小说| 欧美日韩在线综合| 欧美精品一二三四| 日韩欧美一级在线播放| 亚洲国产精品精华液2区45| 一区二区三区产品免费精品久久75| 日韩一区精品视频| 国产成人免费网站| 欧美性做爰猛烈叫床潮| 欧美大胆一级视频| 综合久久综合久久| 免费观看91视频大全| 99久久免费视频.com| 欧美日韩国产综合草草| 国产亚洲精品精华液| 亚洲国产色一区| 国产精品2024| 欧美日韩成人一区二区| 久久精品亚洲精品国产欧美kt∨ | 亚洲综合在线观看视频| 麻豆免费精品视频| 91在线高清观看| 欧美电影免费观看高清完整版在线观看 | 日韩理论片中文av| 免费av成人在线| 97久久久精品综合88久久| 日韩亚洲欧美综合| 一区二区三区在线看| 极品少妇一区二区| 欧美色大人视频| 国产精品视频看| 美女性感视频久久| 欧美怡红院视频| 欧美国产激情一区二区三区蜜月| 秋霞影院一区二区| 国产精品视频观看| 久色婷婷小香蕉久久| 精品视频999| 玉米视频成人免费看| 国产91精品一区二区麻豆网站| 欧美一区二区精品在线| 亚洲综合男人的天堂| 不卡在线观看av| 久久蜜桃香蕉精品一区二区三区| 日韩va亚洲va欧美va久久| 色天天综合色天天久久| 中文字幕一区二区三中文字幕 | 国产欧美一区二区在线观看| 久热成人在线视频| 欧美精品v国产精品v日韩精品| 一区二区三区精品| 色域天天综合网| 亚洲色图视频网| 99热99精品| 中文字幕日本不卡| 成人av中文字幕| 亚洲国产精品国自产拍av| 国产精品一区三区| 国产亚洲精品久| 国产精品456露脸| 国产午夜一区二区三区| 精品一区二区国语对白| 日韩视频免费观看高清完整版在线观看 | 国产乱子伦一区二区三区国色天香| 欧美巨大另类极品videosbest| 亚洲午夜一区二区| 欧美人伦禁忌dvd放荡欲情| 欧美无砖专区一中文字| 亚洲欧美日韩在线播放| 91在线丨porny丨国产| 国产精品夫妻自拍| 99在线精品免费| 亚洲天堂2016| 91麻豆免费观看| 亚洲免费观看视频| 在线看不卡av| 日韩主播视频在线| 日韩视频永久免费| 经典三级视频一区| 久久午夜电影网| 岛国精品在线播放| 中文字幕日韩一区| 在线免费观看日本欧美| 亚洲v精品v日韩v欧美v专区| 在线不卡a资源高清| 美女国产一区二区| 2020国产精品自拍| 成人免费视频一区| 亚洲欧美国产高清| 欧美性xxxxxx少妇| 日本中文在线一区| 337p粉嫩大胆噜噜噜噜噜91av| 国产+成+人+亚洲欧洲自线| 国产精品久久久久影视| 色综合天天综合狠狠| 亚洲香肠在线观看| 日韩免费福利电影在线观看| 国产在线精品一区二区不卡了| 中文字幕va一区二区三区| 色视频成人在线观看免| 五月激情综合网| 精品国精品国产尤物美女| 国产a级毛片一区| 一区二区久久久久久| 日韩精品影音先锋| 成人免费视频app| 亚洲国产综合在线| 久久伊人蜜桃av一区二区| 91亚洲男人天堂| 奇米777欧美一区二区| 欧美高清在线一区二区| 欧美日韩一区二区三区高清| 精品制服美女丁香| 亚洲日本韩国一区| 精品剧情在线观看| 欧美国产精品中文字幕| 欧美日韩一区 二区 三区 久久精品| 麻豆视频观看网址久久| 亚洲欧洲国产日本综合| 欧美一卡2卡3卡4卡| 成人午夜视频网站| 五月天亚洲婷婷| 中文字幕精品在线不卡| 欧美军同video69gay| 国产99久久久国产精品潘金| 午夜影院久久久| 欧美激情一区二区| 69堂国产成人免费视频| 不卡视频在线看| 精品在线播放免费| 亚洲欧美激情一区二区| 精品国内片67194| 欧美中文字幕一区| 国产成人精品一区二| 日韩国产精品久久| √…a在线天堂一区| 精品久久久久久久久久久久久久久 | 欧美日韩二区三区| 成人av在线一区二区| 轻轻草成人在线| 亚洲综合成人在线视频| 亚洲国产高清在线| 日韩视频一区二区三区在线播放 | 午夜精品久久久久久久| 中文字幕一区二区三区四区不卡 | 极品销魂美女一区二区三区| 亚洲成人精品在线观看| 国产精品萝li| 久久久国际精品| 欧美zozo另类异族| 欧美精品国产精品| 色婷婷综合中文久久一本| 国产黄色成人av| 久久99精品国产麻豆婷婷洗澡| 一本久道中文字幕精品亚洲嫩| 国产精品99久久久久久有的能看| 日韩中文欧美在线| 一二三区精品福利视频| 中日韩av电影| 久久久久久毛片| 欧美mv和日韩mv国产网站| 欧美精品在线视频| 欧美日本精品一区二区三区| 色94色欧美sute亚洲线路一ni| 成人福利视频在线看| 粉嫩一区二区三区性色av| 国产一区二区三区在线观看免费视频| 日本亚洲电影天堂| 五月天亚洲婷婷| 丝袜诱惑亚洲看片| 日日摸夜夜添夜夜添亚洲女人| 亚洲高清免费观看高清完整版在线观看| 一区视频在线播放| 一区在线播放视频| 亚洲视频一二区| 专区另类欧美日韩| 亚洲日本va在线观看| 亚洲人妖av一区二区| 最新日韩av在线| 亚洲免费成人av| 亚洲一区二区三区爽爽爽爽爽| 一区二区三区日韩精品视频| 一区二区三区不卡视频在线观看| 亚洲精品成人悠悠色影视| 亚洲免费av高清| 亚洲成人免费av| 青青草原综合久久大伊人精品优势| 欧美a一区二区| 国产乱人伦偷精品视频不卡| 国产伦精品一区二区三区在线观看 | 欧美日韩一区三区四区| 欧美日韩精品一区二区三区蜜桃 | 捆绑调教美女网站视频一区| 麻豆成人久久精品二区三区红 | 国产午夜精品久久久久久久| 日本一区二区免费在线观看视频| 国产精品久久久久一区二区三区 | 欧美美女激情18p| 欧美一区二区播放|