@withux : bezpieczniej jest tak:
CODE
std::string miasto = GETCNTC( numer_kontaktu, CNT_CITY );
zwracam uwagę, że numer_kontaktu (zazwyczaj oznaczany jako
cnt) to nie UID.
żeby go dostać na podstawie uida wywołujesz
CODE
int numer_kontaktu = ICMessage(IMC_FINDCONTACT , net_number , uid_cstr);
gdzie uid_cstr to char * zawierający właśnie UID, a net_number to numer sieci, do jakiej należy kontakt
status osoby dostajesz jako
CODE
int cnt_stat = GETCNTI(cnt, CNT_STATUS);
co znaczy otrzymany int? Zawiera całkiem sporo informacji, wyciągasz je poprzez koniunkcję binarną z odpowiednią stałą
... przykład z konnferencji:
CODE
std::stringstream statusBuff;
int cnt_stat = GETCNTI(cnt,CNT_STATUS);
if(cnt_stat&ST_IGNORED)statusBuff << "Ignorowany";
else
{
if(cnt_stat&ST_AWAY&ST_ONLINE)statusBuff << "Zaraz wraca";
else if(cnt_stat&ST_ONLINE)statusBuff << "Dostępny";
if(cnt_stat==ST_OFFLINE)
{
__time64_t ltime;
_time64( <ime );
if((GETCNTI64(cnt,CNT_LASTACTIVITY))+20*60 >= ltime)
statusBuff << "Niewidoczny";
else
statusBuff << "Niedostępny";
}
}