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

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

?? micqcomponents.cpp

?? 聊天程序
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
// MICQComponents.cpp: implementation of the CMICQComponents class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "MIcqWin32x.h"
#include "MICQComponents.h"

#include "RecvDlgThread.h"
#include "RecvMsgDlg.h"
#include "RcvURLDlg.h"
#include "LoginDlg.h"
#include "ReqAuthDlg.h"

#include "UsrFoundDlg.h"

//#include "datatype.h"
#include "micq.h"
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
//#include <winsock2.h>
#include <time.h>
#include <string.h>
#include <stdarg.h>
#include <assert.h>
#include <ctype.h>
#include <errno.h>
#include <sys/stat.h>
#include <fcntl.h>

#include <io.h>
#define S_IRUSR		_S_IREAD
#define S_IWUSR		_S_IWRITE



#define ADD_COMMAND(a, b)     else if ( ! strcasecmp( tmp, a) ) { strncpy( b,strtok(NULL," \n\t"), 16 ); }
#define ADD_MESS(a, b)     else if ( ! strcasecmp( tmp, a) ) { strncpy( b,strtok(NULL,"\n"), 450 ); }
#define ADD_COLOR(a)      else if ( ! strncmp( str2, a , strlen( a ) ) { if ( Color ) printf( a ); str2 += strlen( a );}


static char rcfile[256];

static char* contactsFound [100];
static int numContactsFound=0;
static DWORD uinsFound [100];

typedef struct 
{
   const char *name;
   WORD code;
} COUNTRY_CODE;

static COUNTRY_CODE Country_Codes[] = { {"USA",1 },
                                 {"Russia",7 },
                                 {"Australia",61 },
                                 {"Denmark",45 },
                                 {"Sweden",46 },
                                 {"Norway",47 },
                                 {"Canada",107 },
                                 {"Brazil",55 },
                                 {"UK",0x2c },
                                 {"Finland", 358 },
                                 {"Iceland", 354 },
                                 {"Algeria", 213 },
                                 {"American Samoa", 684 },
                                 {"Argentina", 54 },
                                 {"Aruba", 297 },
                                 {"Austria", 43 },
                                 {"Bahrain", 973 },
                                 {"Bangladesh", 880 },
                                 {"Belgium", 32 },
                                 {"Belize", 501 },
                                 {"Bolivia", 591 },
                                 {"Cameroon", 237 },
                                 {"Chile", 56 },
                                 {"China", 86 },
                                 {"Columbia", 57 },
                                 {"Costa Rice", 506 },
                                 {"Croatia", 385 }, /* Observerd */
                                 {"Cyprus", 357 },
                                 {"Czech Republic", 42 },
                                 {"Ecuador", 593 },
                                 {"Egypt", 20 },
                                 {"El Salvador", 503 },
                                 {"Ethiopia", 251 },
                                 {"Fiji", 679 },
                                 {"France", 33 },
                                 {"French Antilles", 596 },
                                 {"French Polynesia", 689 },
                                 {"Gabon", 241 },
                                 {"German", 49 },
                                 {"Ghana", 233 },
                                 {"Greece", 30 },
                                 {"Guadeloupe", 590 },
                                 {"Guam", 671 },
                                 {"Guantanomo Bay", 53 },
                                 {"Guatemala", 502 },
                                 {"Guyana", 592 },
                                 {"Haiti", 509 },
                                 {"Honduras", 504 },
                                 {"Hong Kong", 852 },
                                 {"Hungary", 36 },
                                 {"India", 91 },
                                 {"Indonesia", 62 },
                                 {"Iran", 98 },
                                 {"Iraq", 964 },
                                 {"Ireland", 353 },
                                 {"Israel", 972 },
                                 {"Italy", 39 },
                                 {"Ivory Coast", 225 },
                                 {"Japan", 81 },
                                 {"Jordan", 962 },
                                 {"Kenya", 254 },
                                 {"South Korea", 82 },
                                 {"Kuwait", 965 },
                                 {"Liberia", 231 },
                                 {"Libya", 218 },
                                 {"Liechtenstein", 41 },
                                 {"Luxembourg", 352 },
                                 {"Malawi", 265 },
                                 {"Malaysia", 60 },
                                 {"Mali", 223 },
                                 {"Malta", 356 },
                                 {"Mexico", 52 },
                                 {"Monaco", 33 },
                                 {"Morocco", 212 },
                                 {"Namibia", 264 },
                                 {"Nepal", 977 },
                                 {"Netherlands", 31 },
                                 {"Netherlands Antilles", 599 },
                                 {"New Caledonia", 687 },
                                 {"New Zealand", 64 },
                                 {"Nicaragua", 505 },
                                 {"Nigeria", 234 },
                                 {"Oman", 968 },
                                 {"Pakistan", 92 },
                                 {"Panama", 507 },
                                 {"Papua New Guinea", 675 },
                                 {"Paraguay", 595 },
                                 {"Peru", 51 },
                                 {"Philippines", 63 },
                                 {"Poland", 48 },
                                 {"Portugal", 351 },
                                 {"Qatar", 974 },
                                 {"Romania", 40 },
                                 {"Saipan", 670 },
                                 {"San Marino", 39 },
                                 {"Saudia Arabia", 966 },
                                 {"Saipan", 670 },
                                 {"Senegal", 221},
                                 {"Singapore", 65 },
                                 {"Slovakia", 42 },
                                 {"South Africa", 27 },
                                 {"Spain", 34 },
                                 {"Sri Lanka", 94 },
                                 {"Suriname", 597 },
                                 {"Switzerland", 41 },
                                 {"Taiwan", 886 },
                                 {"Tanzania", 255 },
                                 {"Thailand", 66 },
                                 {"Tunisia", 216 },
                                 {"Turkey", 90 },
                                 {"United Arab Emirates", 971 },
                                 {"Uruguay", 598 },
                                 {"Vatican City", 39 },
                                 {"Venezuela", 58 },
                                 {"Vietnam", 84 },
                                 {"Yemen", 967 },
                                 {"Yugoslavia", 38 },
                                 {"Zaire", 243 },
                                 {"Zimbabwe", 263 },
								 {"Not entered",0xffff } };


#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMICQComponents::CMICQComponents()
{

}

CMICQComponents::~CMICQComponents()
{

}

//Beginning of MICQ Code

/*********************************
This must be called every 2 min.
so the server knows we're still alive.
JAVA client sends two different commands
so we do also :)
**********************************/
void Keep_Alive( int sok )
{
   net_icq_pak pak;
   
   Word_2_Chars( pak.head.ver, ICQ_VER );
   Word_2_Chars( pak.head.cmd, CMD_KEEP_ALIVE );
   Word_2_Chars( pak.head.seq, seq_num++ );
   DW_2_Chars( pak.head.UIN, UIN );
   
   last_cmd[(seq_num - 1) & 0x3ff ] = Chars_2_Word( pak.head.cmd );
   SOCKWRITE( sok, &(pak.head.ver), sizeof( pak.head ) - 2 );

   Word_2_Chars( pak.head.ver, ICQ_VER );
   Word_2_Chars( pak.head.cmd, CMD_KEEP_ALIVE2 );
   Word_2_Chars( pak.head.seq, seq_num++ );
   DW_2_Chars( pak.head.UIN, UIN );
   
   last_cmd[(seq_num - 1) & 0x3ff ] = Chars_2_Word( pak.head.cmd );
   SOCKWRITE( sok, &(pak.head.ver), sizeof( pak.head ) - 2 );
   if ( Verbose )
   {
   AfxMessageBox("Send Keep_Alive packet to the server" );
   }
}

void Recv_Message( int sok, BYTE * pak )
{
   RECV_MESSAGE_PTR r_mesg;
CString Message;

//   M_print( "\n" );
   r_mesg = ( RECV_MESSAGE_PTR )pak;
   last_recv_uin = Chars_2_DW( r_mesg->uin );
   Print_UIN_Name( Chars_2_DW( r_mesg->uin ) );
/*   M_print( ":\a\nDate %d/%d/%d\t%d:%02d GMT\n", r_mesg->month, r_mesg->day, 
            Chars_2_Word( r_mesg->year ), r_mesg->hour ,  r_mesg->minute );
            
   M_print( "Type : %d \t Len : %d\n", Chars_2_Word( r_mesg->type ),
       Chars_2_Word( r_mesg->len ) );
*/   Do_Msg( sok, Chars_2_Word( r_mesg->type ), Chars_2_Word( r_mesg->len ), (char *)( r_mesg->len + 2 ), last_recv_uin ); 

/*   M_print( MESSCOL "%s\n" NOCOL, ((char *) &r_mesg->len) + 2 );*/
/*   ack_srv( sok, Chars_2_Word( pak.head.seq ) ); */
   /*Message.Format(":\a\nDate %d/%d/%d\t%d:%02d GMT\nType : %d \t Len : %d\n", r_mesg->month, r_mesg->day, 
            Chars_2_Word( r_mesg->year ), r_mesg->hour ,  r_mesg->minute , Chars_2_Word( r_mesg->type ),
       Chars_2_Word( r_mesg->len ) );
   AfxMessageBox(Message);*/
}

/*********************************
This must be called to remove messages
from the server
**********************************/
void snd_got_messages( int sok )
{
   net_icq_pak pak;
   
   Word_2_Chars( pak.head.ver, ICQ_VER );
   Word_2_Chars( pak.head.cmd, CMD_ACK_MESSAGES );
   Word_2_Chars( pak.head.seq, seq_num++ );
   DW_2_Chars( pak.head.UIN, UIN );
   
   last_cmd[ (seq_num - 1) & 0x3ff ] = Chars_2_Word( pak.head.cmd );
   SOCKWRITE( sok, &(pak.head.ver), sizeof( pak.head ) - 2 );
}

/*************************************
this sends over the contact list
**************************************/
void snd_contact_list( int sok )
{
   net_icq_pak pak;
   int num_used;
   int i, size;
   char *tmp;
   
   Word_2_Chars( pak.head.ver, ICQ_VER );
   Word_2_Chars( pak.head.cmd, CMD_CONT_LIST );
   Word_2_Chars( pak.head.seq, seq_num++ );
   DW_2_Chars( pak.head.UIN, UIN );
   
   tmp = (char *)pak.data;
   tmp++;
   for ( i=0, num_used=0; i < Num_Contacts ; i++ )
   {
      if ( (S_DWORD) Contacts[ i ].uin >  0 )
      {
         DW_2_Chars( (unsigned char *)tmp, Contacts[i].uin );
         tmp+=4;
         num_used++;
      }
   }
   pak.data[0] = num_used;
/*   Word_2_Chars( pak.data, num_used ); */
   size = ( ( int ) tmp - ( int ) pak.data );
   size += sizeof( pak.head ) - 2;
   last_cmd[seq_num - 1 ] = Chars_2_Word( pak.head.cmd );
   SOCKWRITE( sok, &(pak.head.ver), size );
}

/*************************************
this sends over the Invisible list
that allows certain users to see you
if you're invisible.
**************************************/
void snd_invis_list( int sok )
{
   net_icq_pak pak;
   int num_used;
   int i, size;
   char *tmp;
   
   Word_2_Chars( pak.head.ver, ICQ_VER );
   Word_2_Chars( pak.head.cmd, CMD_INVIS_LIST );
   Word_2_Chars( pak.head.seq, seq_num++ );
   DW_2_Chars( pak.head.UIN, UIN );
   
   tmp = (char *)pak.data;
   tmp++;
   for ( i=0, num_used=0; i < Num_Contacts ; i++ )
   {
      if ( (S_DWORD) Contacts[ i ].uin >  0 )
      {
         if ( Contacts[i].invis_list )
         {
            DW_2_Chars( (unsigned char*)tmp, Contacts[i].uin );
            tmp+=4;
            num_used++;
         }
      }
   }
   if ( num_used != 0 )
   {
      pak.data[0] = num_used;
      size = ( ( int ) tmp - ( int ) pak.data );
      size += sizeof( pak.head ) - 2;
      last_cmd[seq_num - 1 ] = Chars_2_Word( pak.head.cmd );
      SOCKWRITE( sok, &(pak.head.ver), size );
   }
}

/*************************************
this sends over the Visible list
that allows certain users to see you
if you're invisible.
**************************************/
void snd_vis_list( int sok )
{
   net_icq_pak pak;
   int num_used;
   int i, size;
   char *tmp;
   
   Word_2_Chars( pak.head.ver, ICQ_VER );
   Word_2_Chars( pak.head.cmd, CMD_VIS_LIST );
   Word_2_Chars( pak.head.seq, seq_num++ );
   DW_2_Chars( pak.head.UIN, UIN );
   
   tmp = (char *)pak.data;
   tmp++;
   for ( i=0, num_used=0; i < Num_Contacts ; i++ )
   {
      if ( (S_DWORD) Contacts[ i ].uin >  0 )
      {
         if ( Contacts[i].vis_list )
         {
            DW_2_Chars( (unsigned char*)tmp, Contacts[i].uin );
            tmp+=4;
            num_used++;
         }
      }
   }
   if ( num_used != 0 )
   {
      pak.data[0] = num_used;
      size = ( ( int ) tmp - ( int ) pak.data );
      size += sizeof( pak.head ) - 2;
      last_cmd[seq_num - 1 ] = Chars_2_Word( pak.head.cmd );
      SOCKWRITE( sok, &(pak.head.ver), size );
   }
}

/**************************************
This sends the second login command
this is necessary to finish logging in.
***************************************/
void snd_login_1( int sok )
{
   net_icq_pak pak;
   
   Word_2_Chars( pak.head.ver, ICQ_VER );
   Word_2_Chars( pak.head.cmd, CMD_LOGIN_1 );
   Word_2_Chars( pak.head.seq, seq_num++ );
   DW_2_Chars( pak.head.UIN, UIN );
   
   last_cmd[seq_num - 1 ] = Chars_2_Word( pak.head.cmd );
   SOCKWRITE( sok, &(pak.head.ver), sizeof( pak.head ) - 2 );
}

/************************************************
This is called when a user goes offline
*************************************************/
void User_Offline( int sok, BYTE * pak )
{
   int remote_uin;
   int index;

   remote_uin = Chars_2_DW( &pak[0] );

//   M_print( "\n" );
//   M_print( CONTACTCOL );
   index = Print_UIN_Name( remote_uin );
//   M_print( NOCOL );
//   M_print( " logged off.\t" );
//   Time_Stamp();
//   M_print( "\n" );

   log_event("User logged off","",remote_uin);
   if ( index != -1 )
   {
      Contacts[ index ].status = STATUS_OFFLINE;
      Contacts[ index ].last_time = time( NULL );
   }
}

void User_Online( int sok, BYTE * pak )
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩aⅴ一区二区三区四区| 欧美剧情片在线观看| 色婷婷国产精品综合在线观看| 欧美精品九九99久久| 国产午夜精品一区二区| 日韩中文字幕不卡| 99久久久久久99| 国产视频一区二区在线观看| 日韩高清在线一区| 91国在线观看| 日本亚洲欧美天堂免费| av在线一区二区三区| 欧美va在线播放| 午夜欧美2019年伦理| 99国产精品久久久久久久久久久 | 久久久91精品国产一区二区精品| 亚洲自拍偷拍av| 97久久精品人人做人人爽50路| 国产亚洲欧美激情| 精品一区二区在线观看| 337p亚洲精品色噜噜| 亚洲图片一区二区| 欧美无砖砖区免费| 亚洲精品成人a在线观看| av一区二区三区四区| 中文字幕欧美国产| 成人妖精视频yjsp地址| 久久久影视传媒| 国产精品69毛片高清亚洲| 久久久亚洲精品一区二区三区 | 亚洲国产日韩在线一区模特 | 国产不卡在线一区| 国产日产欧美精品一区二区三区| 激情深爱一区二区| 精品国产一区久久| 狠狠色狠狠色综合| 久久久精品国产99久久精品芒果| 国产综合色在线视频区| 国产亚洲综合在线| av电影在线观看一区| 国产精品传媒视频| 在线视频观看一区| 日韩av二区在线播放| 精品欧美乱码久久久久久1区2区| 久久精品国产**网站演员| 精品欧美乱码久久久久久| 国产91在线观看丝袜| 国产精品久久久久久久蜜臀| 99热这里都是精品| 石原莉奈一区二区三区在线观看 | 亚洲欧洲无码一区二区三区| 91麻豆成人久久精品二区三区| 一区二区三区免费观看| 欧美日韩一区不卡| 久久66热re国产| 国产精品麻豆网站| 欧美日韩国产美女| 国产一区二区三区高清播放| 亚洲日本丝袜连裤袜办公室| 欧美日韩免费电影| 国产精一区二区三区| 夜色激情一区二区| 精品99一区二区| 成人h动漫精品一区二| 亚洲国产综合人成综合网站| 日韩精品专区在线影院观看| 成人动漫在线一区| 日韩av一区二区三区| 国产精品国产三级国产aⅴ中文| 97久久久精品综合88久久| 免费精品视频最新在线| 亚洲人被黑人高潮完整版| 精品少妇一区二区三区视频免付费| 岛国精品一区二区| 日韩电影一区二区三区| 亚洲欧洲一区二区在线播放| 欧美sm极限捆绑bd| 欧美性色黄大片手机版| 东方欧美亚洲色图在线| 石原莉奈在线亚洲三区| 亚洲欧洲性图库| 久久精品亚洲麻豆av一区二区| 欧美性猛交一区二区三区精品| 久久精品国产一区二区三区免费看| 亚洲丝袜自拍清纯另类| 久久久久久一级片| 日韩欧美在线影院| 欧美视频一区二区三区四区| 成人黄色软件下载| 久久69国产一区二区蜜臀| 亚洲va国产va欧美va观看| 日韩伦理免费电影| 日本一二三不卡| 欧美成人高清电影在线| 欧美高清视频一二三区| 91官网在线观看| 91免费国产在线观看| 粉嫩av亚洲一区二区图片| 精品一区二区三区欧美| 蜜臀av性久久久久蜜臀aⅴ| 一区二区日韩av| 亚洲欧美一区二区视频| 国产欧美一区二区精品秋霞影院| 日韩欧美123| 欧美一区二区三区思思人| 欧美视频精品在线| 欧美色精品天天在线观看视频| 91久久精品一区二区| 一本色道久久加勒比精品| a4yy欧美一区二区三区| 成人av电影在线观看| 不卡的av电影在线观看| av一本久道久久综合久久鬼色| 国产成人h网站| 成人毛片老司机大片| 9i看片成人免费高清| 99国产精品久久久久久久久久久| av亚洲产国偷v产偷v自拍| 成人aa视频在线观看| 99re66热这里只有精品3直播| 91蝌蚪porny| 色婷婷av一区二区三区gif| 一本色道久久综合亚洲精品按摩| 欧洲一区在线电影| 欧美日韩成人一区二区| 3d成人h动漫网站入口| 日韩一区二区三区免费观看 | 91精品国产综合久久精品图片| 欧美日韩国产影片| 91精品免费在线| 亚洲精品在线免费播放| 国产性色一区二区| 又紧又大又爽精品一区二区| 亚洲成人免费在线| 久久精品国产在热久久| 成人午夜电影小说| 欧美在线色视频| 日韩欧美国产不卡| 国产精品日日摸夜夜摸av| 亚洲综合网站在线观看| 免费成人在线视频观看| 波多野结衣亚洲一区| 在线精品国精品国产尤物884a| 欧美一区二区在线不卡| 欧美国产成人在线| 午夜国产精品一区| 国产精品123| 欧美少妇一区二区| 久久久久久久久久久久久久久99| 亚洲欧洲成人自拍| 日韩av电影免费观看高清完整版 | 国产精品成人免费在线| 亚洲精品久久7777| 激情六月婷婷久久| 色噜噜狠狠一区二区三区果冻| 91精品国产综合久久蜜臀| 久久久久久久一区| 午夜精品免费在线观看| 国产成人激情av| 日韩一区二区精品| 亚洲人成网站在线| 国产麻豆9l精品三级站| 欧美中文字幕一区二区三区亚洲| 精品国产91洋老外米糕| 一区二区三区精品久久久| 国产在线精品一区二区三区不卡 | 91视频国产资源| 精品欧美一区二区久久| 亚洲成人一区二区在线观看| 波多野结衣中文字幕一区| 欧美一级在线免费| 亚洲国产精品自拍| caoporm超碰国产精品| 国产三级一区二区| 看电影不卡的网站| 欧美日韩精品久久久| 亚洲美女偷拍久久| www.欧美亚洲| 久久久精品国产免大香伊| 男女激情视频一区| 欧美日本一区二区三区| 亚洲免费在线观看视频| 从欧美一区二区三区| 久久亚洲欧美国产精品乐播| 美腿丝袜亚洲综合| 欧美群妇大交群中文字幕| 亚洲精品va在线观看| 成人性生交大片免费 | 精品少妇一区二区三区| 婷婷综合在线观看| 欧美午夜精品久久久久久超碰| 亚洲欧美日韩久久精品| 99re这里只有精品视频首页| 国产精品久久三区| 成人av午夜影院| 亚洲欧美国产77777| 91久久一区二区| 亚洲国产精品久久人人爱| 在线观看日韩高清av| 夜夜爽夜夜爽精品视频|