亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
中文字幕一区日韩精品欧美| 精品亚洲国内自在自线福利| 97精品视频在线观看自产线路二| 欧美videofree性高清杂交| 男人操女人的视频在线观看欧美 | 国产精品久久久久久久久久免费看 | 国产老肥熟一区二区三区| 国产三级三级三级精品8ⅰ区| 九九**精品视频免费播放| 欧美成人精品二区三区99精品| 丝袜美腿亚洲综合| 精品欧美一区二区久久| 成人综合在线网站| 一区二区三区在线影院| 日韩亚洲国产中文字幕欧美| 激情综合网av| 亚洲激情综合网| 欧美午夜精品久久久久久超碰| 日韩国产精品久久久久久亚洲| 精品久久久久久最新网址| 不卡电影一区二区三区| 一区二区三区在线免费观看| 4438亚洲最大| 成人性生交大合| 日韩二区三区在线观看| 亚洲欧美日韩国产一区二区三区| 日韩视频一区二区三区| 一本到不卡精品视频在线观看| 久久国内精品自在自线400部| 国产精品嫩草影院com| 欧美一区二区成人| 欧美色网一区二区| 91日韩在线专区| 国产一区二区电影| 毛片不卡一区二区| 日本欧美在线观看| 亚洲最新视频在线观看| 欧美国产乱子伦| 日韩一级高清毛片| 精品午夜久久福利影院| 日韩福利视频导航| 亚洲一区二区视频在线| 国产精品乱人伦| 久久综合色天天久久综合图片| 欧美天堂亚洲电影院在线播放| 丁香婷婷综合色啪| 蜜臀国产一区二区三区在线播放| 一区二区三区不卡在线观看| 国产精品国产三级国产a| 欧美午夜精品久久久久久超碰| 国产精品亚洲人在线观看| 蜜桃精品视频在线| 日本sm残虐另类| 日韩av午夜在线观看| 亚洲第一狼人社区| 亚洲国产sm捆绑调教视频| 一区二区三区在线观看视频| 国产精品入口麻豆原神| **性色生活片久久毛片| 一级精品视频在线观看宜春院| 亚洲欧洲日韩女同| 自拍偷拍欧美激情| 一区二区高清视频在线观看| 亚洲国产精品激情在线观看| 亚洲五月六月丁香激情| 亚洲福利一二三区| 狠狠色丁香九九婷婷综合五月| 国产伦精品一区二区三区免费迷| 国产专区欧美精品| 99国产欧美久久久精品| 成人ar影院免费观看视频| 色94色欧美sute亚洲线路一久| 91国模大尺度私拍在线视频| 欧美日韩一级二级三级| 欧美大胆人体bbbb| 亚洲男女一区二区三区| 精品在线免费视频| 在线免费观看日本一区| 欧美sm极限捆绑bd| 亚洲天堂网中文字| 亚洲精品第1页| 国产成人在线视频网站| 欧美三级电影在线看| 欧美国产精品一区| 日本伊人午夜精品| 在线亚洲欧美专区二区| 久久精品亚洲麻豆av一区二区| 婷婷亚洲久悠悠色悠在线播放 | 最新国产の精品合集bt伙计| 老色鬼精品视频在线观看播放| 国产福利一区二区三区视频| 在线观看日韩电影| 最新中文字幕一区二区三区| 成人avav影音| 日韩一区二区三区在线| 亚洲精品国产无天堂网2021| 国产91精品精华液一区二区三区| 日韩一级黄色大片| 色婷婷av久久久久久久| 国产精品美女久久久久aⅴ国产馆| 奇米色777欧美一区二区| 欧美三级在线视频| 丝袜诱惑制服诱惑色一区在线观看 | 欧美一区二区三区婷婷月色 | 亚洲欧美日韩成人高清在线一区| 国产91在线观看丝袜| 久久精品日产第一区二区三区高清版 | 欧美日韩一区三区| 亚洲成人免费视频| 91老师国产黑色丝袜在线| 中文字幕 久热精品 视频在线| 国产精品18久久久| 国产精品高清亚洲| 欧美日韩国产一级片| 午夜久久久久久| 日韩欧美第一区| 国产91精品精华液一区二区三区| 国产精品美女久久久久久久| 在线观看成人小视频| 日韩av一区二| 2021久久国产精品不只是精品| 99re成人在线| 麻豆精品蜜桃视频网站| 久久九九国产精品| 欧美在线视频日韩| 国产一区二区成人久久免费影院 | 精品嫩草影院久久| 国产成人精品一区二| 亚洲与欧洲av电影| 国产精品毛片久久久久久久| 欧美日韩国产美| 成人自拍视频在线| 麻豆成人综合网| 成人欧美一区二区三区白人| 91麻豆精品国产91久久久使用方法| 国产一区二区在线看| 午夜电影一区二区| 精品国产免费视频| 欧美一区二区三区成人| 色综合天天在线| 成人av免费网站| 国产美女精品一区二区三区| 午夜精品久久久久久| 亚洲最快最全在线视频| 欧美激情一区在线| 欧美精品一区二区久久久| 欧美一区二区三区四区视频 | 欧美国产激情一区二区三区蜜月| 91.com视频| 日韩一区二区视频在线观看| 亚洲欧洲美洲综合色网| 中文字幕精品—区二区四季| 2020日本不卡一区二区视频| 日韩西西人体444www| 欧美一区二区不卡视频| 欧美成人一区二区三区| 精品久久99ma| 欧美精品一区二区不卡 | 成人免费高清在线| fc2成人免费人成在线观看播放| 岛国一区二区三区| 91丨porny丨中文| 欧美午夜精品一区二区蜜桃| 日韩三级视频中文字幕| 久久综合色婷婷| 一区二区三区四区不卡在线| 中文字幕制服丝袜成人av| 亚洲不卡在线观看| 精品无人码麻豆乱码1区2区| 国产99精品国产| 欧美日韩精品免费观看视频| 欧美一级欧美三级| 亚洲国产精品成人综合色在线婷婷 | 99re这里只有精品首页| 欧美精品久久99久久在免费线| 91精品在线一区二区| 久久久久国产精品厨房| 亚洲大片在线观看| 成人精品高清在线| 91精品在线观看入口| 日韩一卡二卡三卡| 亚洲日本一区二区| 国产老妇另类xxxxx| 欧美写真视频网站| 国产亚洲欧洲一区高清在线观看| 亚洲一区二区在线观看视频| 国产成人av一区二区| 日韩一二三四区| 亚洲国产一区视频| 成人午夜又粗又硬又大| 日韩一级欧美一级| 日韩二区三区四区| 欧美日韩亚洲国产综合| 日本一区二区三区四区在线视频| 中文字幕国产一区二区| 国产精品自拍三区| 国产精品萝li| 成人精品在线视频观看| 日韩欧美www| 高清在线成人网|