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

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

?? micqcomponents.cpp

?? 聊天程序
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
	  }


	  receiveURL.DoModal();
//      M_print( " URL Message.\n Description: " MESSCOL "%s" NOCOL "\n", url_desc );
//      M_print(               " URL        : " MESSCOL "%s" NOCOL "\n", url_data );
   }
	else if (type == CONTACT_MESS || type==MRCONTACT_MESS)
	{
      tmp = strchr( data, '\xFE' );
      *tmp = 0;
      M_print( "\nContact List.\n" MESSCOL "============================================\n" NOCOL "%d Contacts\n", atoi(data) );
      tmp++;
      m = atoi(data);
      for(x=0; m > x ; x++)
      {
         data = tmp;
         tmp = strchr( tmp, '\xFE' );
         *tmp = 0;
         M_print( CONTACTCOL "%s\t\t\t", data );
         tmp++;
         data = tmp;
         tmp = strchr( tmp, '\xFE' );
         *tmp = 0;
         M_print( MESSCOL "%s" NOCOL "\n" , data );
         tmp++;
      }
	}
   else
   {
//      rus_conv ("wk",data);
      log_event("You received instant message",data,uin);
     if (!strcmp(String_Print_UIN_Name(  uin   ),"")) {
	    CRecvMsgDlg *newMessage;
		newMessage = new CRecvMsgDlg;
		newMessage->m_received_from_uin=uin;
		newMessage->m_received_from_nick="Unknown";
		newMessage->m_received_msg=(char*)data;
		newMessage->DoModal();
	  }
	  else {
	    CRecvMsgDlg *newMessage;
		newMessage = new CRecvMsgDlg;
		newMessage->m_received_from_uin=uin;
		newMessage->m_received_from_nick=String_Print_UIN_Name(  uin  );
		newMessage->m_received_msg=(char*)data;
		newMessage->DoModal();
/*	    CRecvDlgThread *pThread;
		pThread = new CRecvDlgThread;
		pThread->received_uin=uin;
		pThread->received_nick=String_Print_UIN_Name(  uin  );
		pThread->received_msg=(char*)data;
		pThread->CreateThread();
*/	  }
    //  M_print( NOCOL "\n" );
   }
}

const char *Get_Country_Name( int code )
{
   int i;
   
   for ( i = 0; Country_Codes[i].code != 0xffff; i++)
   {
      if ( Country_Codes[i].code == code )
      {
         return Country_Codes[i].name;
      }
   }
   if ( Country_Codes[i].code == code )
   {
      return Country_Codes[i].name;
   }
   return NULL;
}

/***************************************************************
Turns keybord echo off for the password
****************************************************************/
S_DWORD Echo_Off( void )
{
#ifdef UNIX
	struct termios attr; /* used for getting and setting terminal
				attributes */

	/* Now turn off echo */
	if (tcgetattr(STDIN_FILENO, &attr) != 0) return(-1);
		/* Start by getting current attributes.  This call copies
		all of the terminal paramters into attr */

	attr.c_lflag &= ~(ECHO);
		/* Turn off echo flag.  NOTE: We are careful not to modify any
		bits except ECHO */
	if (tcsetattr(STDIN_FILENO,TCSAFLUSH,&attr) != 0) return(-2);
		/* Wait for all of the data to be printed. */
		/* Set all of the terminal parameters from the (slightly)
		   modified struct termios */
		/* Discard any characters that have been typed but not yet read */
#endif
	return 0;
}


/***************************************************************
Turns keybord echo back on after the password
****************************************************************/
S_DWORD Echo_On( void )
{
#ifdef UNIX
	struct termios attr; /* used for getting and setting terminal
				attributes */

	if (tcgetattr(STDIN_FILENO, &attr) != 0) return(-1);

	attr.c_lflag |= ECHO;
	if(tcsetattr(STDIN_FILENO,TCSANOW,&attr) != 0) return(-1);
#endif
	return 0;
}

/**************************************************************
Same as fM_print but for FD_T's
***************************************************************/
void M_fdprint( FD_T fd, char *str, ... )
{
   va_list args;
   int k;
   char buf[2048]; /* this should big enough */
        
   assert( buf != NULL );
   assert( 2048 >= strlen( str ) );
   
   va_start( args, str );
   vsprintf( buf, str, args );
   k = write( fd, buf, strlen( buf ) );
   if ( k != (int)strlen( buf ) )
   {
      perror(str);
      exit ( 10);
   }
   va_end( args );
}

/************************************************************
Prints the preformated sting to stdout.
Plays sounds if appropriate.
************************************************************/
static void M_prints( char *str )
{
/*   int i;
   
   for ( i=0; str[i] != 0; i++ )
   {
      if ( str[i] != '\a' )
         printf( "%c", str[i] );
      else if ( SOUND_ON == Sound )
         printf( "\a" );
   }
   */
	AfxMessageBox(str);
}

/**************************************************************
M_print with colors.
***************************************************************/
void M_print( char *str, ... )
{
   va_list args;
   char buf[2048];
   char *str1, *str2;
   
   va_start( args, str );
#ifndef CURSES_UI
   vsprintf( buf, str, args );
   str2 = buf;
   while ( (void *) NULL != ( str1 = strchr( str2, '\x1b' ) ) )
   {
      str1[0] = 0;
      M_prints( str2 );
      str1[0] = 0x1B;
      str2 = str1;
      if ( FALSE ) {;}
    /*  ADD_COLOR( NOCOL )
      ADD_COLOR( SERVCOL )
      ADD_COLOR( MESSCOL )
      ADD_COLOR( CONTACTCOL )
      ADD_COLOR( CLIENTCOL )
  */    else
      {
          str2++;
      }
   }
   M_prints( str2 );
#else
   #error No curses support included yet.
   #error You must add it yourself.
#endif
   va_end( args );
}

/***********************************************************
Reads a line of input from the file descriptor fd into buf
an entire line is read but no more than len bytes are 
actually stored
************************************************************/
int M_fdnreadln( FD_T fd, char *buf, size_t len )
{
   int i,j;
   char tmp;

   assert( buf != NULL );
   assert( len > 0 );
   tmp = 0;
   for ( i=-1; ( tmp != '\n' )  ; )
   {
      if  ( ( i < len ) || ( i == -1 ) )
      {
         i++;
         j = read( fd, &buf[i], 1 );
         tmp = buf[i];
      }
      else
      {
         j = read( fd, &tmp, 1 );
      }
      assert( j != -1 );
      if ( j == 0 )
      {
         buf[i] =  0;
         return -1;
      }
   }
   if ( i < 1 )
   {
      buf[i] = 0;
   }
   else
   {
      if ( buf[i-1] == '\r' )
      {
         buf[i-1] = 0;
      }
      else
      {
         buf[i] = 0;
      }
   } 
   return 0;
}

/********************************************
returns a string describing the status or
a NULL if no such string exists
*********************************************/
char *Convert_Status_2_Str( int status )
{
   if ( STATUS_OFFLINE == status ) /* this because -1 & 0xFFFF is not -1 */
   {
      return "Offline";
   }
   
   switch ( status & 0xffff )
   {
   case STATUS_ONLINE:
      return "Online";
      break;
   case STATUS_DND:
      return "Do not disturb";
      break;
   case STATUS_AWAY:
      return "Away";
      break;
   case STATUS_OCCUPIED:
      return "Occupied";
      break;
   case STATUS_NA:
      return "Not available";
      break;
   case STATUS_INVISIBLE:
      return "Invisible";
      break;
   case STATUS_INVISIBLE_2:
      return "Invisible mode 2";
      break;
   case STATUS_FREE_CHAT:
      return "Free for chat";
      break;
   default :
      return NULL;
      break;
   }
}

/********************************************
prints out the status of new_status as a string
if possible otherwise as a hex number
*********************************************/
void Print_Status( DWORD new_status  )
{
   if ( Convert_Status_2_Str( new_status ) != NULL )
   {
      M_print( "%s", Convert_Status_2_Str( new_status ) );
      if ( Verbose )
         M_print( " %02X",( WORD ) ( new_status >> 16 ) );
   }
   else
   {
      M_print( "%08lX", new_status );
   }
}

/**********************************************
 * Returns the nick of a UIN if we know it else
 * it will return Unknow UIN
 **********************************************/

char *UIN2nick( DWORD uin)
{
   int i;
	
   for ( i=0; i < Num_Contacts; i++ )
   {
     if ( Contacts[i].uin == uin )
        break;
   }
	
   if ( i == Num_Contacts )
   {
      return "Unknow UIN";
	  }
   else
	  {
      return Contacts[i].nick;
	  }
}

/**********************************************
Prints the name of a user or there UIN if name
is not know.
***********************************************/
int Print_UIN_Name( DWORD uin )
{
   int i;
   
   for ( i=0; i < Num_Contacts; i++ )
   {
      if ( Contacts[i].uin == uin )
         break;
   }

   if ( i == Num_Contacts )
   {
//      M_print( CLIENTCOL "%lu" NOCOL, uin );
      return -1 ;
   }
   else
   {
//      M_print( "%s%s%s", CONTACTCOL, Contacts[i].nick, NOCOL );
      return i;
   }
}

/*********************************************
Converts a nick name into a uin from the contact
list.
**********************************************/
DWORD nick2uin( char *nick )
{
   int i;
   BOOL non_numeric=FALSE;
   
   for ( i=0; i< Num_Contacts; i++ )
   {
      if ( ! strncasecmp( nick, Contacts[i].nick, 19  ) )
      {
         if ( (S_DWORD) Contacts[i].uin > 0 )
            return Contacts[i].uin;
         else
            return -Contacts[i].uin; /* alias */
      }
   }
   for ( i=0; i < strlen( nick ); i++ )
   {
      if ( ! isdigit( (int) nick[i] ) )
      {
         non_numeric=TRUE;
         break;
      }
   }
   if ( non_numeric )
      return -1; /* not found and not a number */
   else
      return atoi( nick );
}

/**************************************************
Automates the process of creating a new user.
***************************************************/
void Init_New_User( void )
{
   SOK_T sok; 
   srv_net_icq_pak pak;
   int s;
   struct timeval tv;
   fd_set readfds;
#ifdef _WIN32
   WSADATA wsaData;
   int i;
#endif
      
#ifdef _WIN32
   i = WSAStartup( 0x0101, &wsaData );
   if ( i != 0 ) {
#ifdef FUNNY_MSGS
		perror("Windows Sockets broken blame Bill -");
#else
		perror("Sorry, can't initialize Windows Sockets...");
#endif
	    exit(1);
   }
#endif
   M_print( "\nCreating Connection...\n");
   sok = Connect_Remote( server, remote_port, STDERR );
   if ( ( sok == -1 ) || ( sok == 0 ) ) 
   {
   	M_print( "Couldn't establish connection\n" );
   	exit( 1 );
   }
   M_print( "Sending Request...\n" );
   reg_new_user( sok, passwd );
   for ( ; ; )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜视频在线观看一区二区三区| 国产精品拍天天在线| 丁香亚洲综合激情啪啪综合| 亚洲最大的成人av| 亚洲精品一区二区三区影院| 欧美影院午夜播放| 成人性生交大片免费看中文网站| 亚洲线精品一区二区三区八戒| 国产婷婷一区二区| 欧美一级xxx| 精品视频全国免费看| 床上的激情91.| 六月丁香婷婷久久| 午夜精品一区在线观看| 亚洲裸体xxx| 国产日韩成人精品| 欧美α欧美αv大片| 欧美精品国产精品| 欧美日韩一区二区电影| 色欲综合视频天天天| 国产91高潮流白浆在线麻豆| 久久99精品国产.久久久久久| 亚洲综合视频在线观看| 亚洲视频中文字幕| 中文文精品字幕一区二区| 精品少妇一区二区三区日产乱码 | 久久久久久久久久电影| 欧美精品一级二级| 欧美无人高清视频在线观看| 成人黄色网址在线观看| 粉嫩aⅴ一区二区三区四区五区| 经典一区二区三区| 精品一区二区三区av| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲电影激情视频网站| 亚洲福利一二三区| 亚洲午夜免费视频| 午夜电影一区二区| 婷婷开心激情综合| 日韩精品乱码av一区二区| 日韩成人午夜电影| 天天免费综合色| 午夜国产精品一区| 日本三级亚洲精品| 蜜桃av一区二区| 久久精品国产一区二区| 国产在线精品一区二区夜色| 久久97超碰色| 丁香天五香天堂综合| www.欧美亚洲| 在线看国产一区| 欧美精品乱码久久久久久按摩| 精品视频一区二区三区免费| 欧美一级电影网站| 久久久久久毛片| 亚洲日本免费电影| 午夜视频在线观看一区二区| 日韩电影在线观看网站| 国产综合成人久久大片91| 国产黄色精品网站| 一本大道av一区二区在线播放| 日本高清免费不卡视频| 欧美一区二区三区日韩| 欧美成人一区二区三区片免费| 久久这里只有精品视频网| 亚洲国产高清在线| 亚洲福利视频导航| 狠狠色丁香婷婷综合| 99精品久久久久久| 7777精品伊人久久久大香线蕉的 | 欧美日韩精品一区二区三区四区| 91精品欧美综合在线观看最新 | 国产精品日韩精品欧美在线| 亚洲美女区一区| 蓝色福利精品导航| 成人一区二区三区在线观看| 色悠悠久久综合| 欧美精品丝袜中出| 久久久久久久久久看片| 亚洲日本电影在线| 久久精品二区亚洲w码| 成人午夜电影小说| 欧美高清hd18日本| 国产精品久久久久四虎| 日韩专区在线视频| 成人美女在线观看| 欧美一级午夜免费电影| 亚洲视频一区二区免费在线观看| 日本欧美韩国一区三区| 99精品黄色片免费大全| 欧美mv日韩mv国产网站| 亚洲一区二区在线播放相泽| 国产精华液一区二区三区| 欧美性生活一区| 欧美高清在线精品一区| 日本不卡的三区四区五区| 91丨porny丨户外露出| 久久影视一区二区| 日一区二区三区| 色欧美乱欧美15图片| 久久久一区二区三区捆绑**| 亚洲综合激情网| 粗大黑人巨茎大战欧美成人| 日韩午夜三级在线| 亚洲在线视频网站| 国产98色在线|日韩| 精品免费国产一区二区三区四区| 亚洲国产成人av| 日本韩国视频一区二区| 亚洲国产精品成人综合色在线婷婷| 石原莉奈在线亚洲三区| 欧美在线你懂得| 国产精品久久久久天堂| 国产精华液一区二区三区| 欧美大胆人体bbbb| 日韩电影免费在线| 欧美三级日韩三级国产三级| 亚洲你懂的在线视频| 成人性生交大片免费看视频在线| 久久综合九色综合97婷婷 | 国产大陆精品国产| 精品欧美久久久| 另类调教123区| 欧美一级爆毛片| 美日韩一级片在线观看| 欧美二区乱c少妇| 性做久久久久久免费观看| 91免费视频网址| 亚洲日本乱码在线观看| 91网站最新地址| 亚洲视频在线一区二区| 色先锋资源久久综合| 亚洲精品免费在线观看| 99久久久免费精品国产一区二区| 国产欧美一区二区三区在线看蜜臀 | 精品一区二区在线视频| 日韩一区和二区| 久久国产精品第一页| 欧美成人a视频| 国产精品亚洲午夜一区二区三区 | 最新国产成人在线观看| 99精品1区2区| 亚洲色图视频免费播放| 色综合天天综合网天天看片| 亚洲一区二区三区四区五区黄| 精品视频在线看| 麻豆成人久久精品二区三区红| 日韩一级完整毛片| 国产成人免费视频网站高清观看视频| 国产亚洲欧美色| 97se亚洲国产综合自在线观| 一区二区三区视频在线看| 欧美日本一道本| 精品一区二区免费在线观看| 国产香蕉久久精品综合网| aaa亚洲精品| 亚洲一区在线观看免费观看电影高清| 在线观看国产日韩| 日本一不卡视频| 国产欧美日韩在线看| 91啪在线观看| 日本亚洲欧美天堂免费| 国产欧美日本一区视频| 欧美亚洲一区二区在线| 捆绑调教美女网站视频一区| 国产精品久久久久7777按摩 | 色悠久久久久综合欧美99| 丝袜亚洲另类欧美| 久久久91精品国产一区二区精品| www.激情成人| 日韩精品三区四区| 国产精品麻豆欧美日韩ww| 色婷婷综合五月| 久久99国产精品成人| 亚洲色图视频网站| 日韩女优毛片在线| 99久久99久久免费精品蜜臀| 日韩国产精品久久久| 国产精品国产三级国产普通话蜜臀 | 一区二区三区 在线观看视频| 91麻豆精品国产91久久久久久 | 久久久久一区二区三区四区| 色系网站成人免费| 久久99精品久久只有精品| 亚洲欧美日韩电影| 欧美精品一区二区久久婷婷 | 久久精品一区二区三区不卡牛牛| 色偷偷久久人人79超碰人人澡| 精品在线播放免费| 亚洲精品中文在线观看| 久久青草国产手机看片福利盒子| 在线精品视频免费播放| 国产成+人+日韩+欧美+亚洲| 石原莉奈在线亚洲三区| 亚洲精品国产精品乱码不99| 精品国免费一区二区三区| 欧美三级一区二区| 91麻豆国产自产在线观看| 国产99一区视频免费 | 国产乱码精品1区2区3区|