TCHAR* Protocol::GetNick() { // See if can get one if (!CanGetNick()) return NULL; // Get it CONTACTINFO ci = { 0 }; ci.cbSize = sizeof(ci); ci.hContact = NULL; ci.szProto = name; ci.dwFlag = CNF_DISPLAY; #ifdef UNICODE ci.dwFlag |= CNF_UNICODE; #endif if (!CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM)& ci)) { // CNF_DISPLAY always returns a string type lcopystr(nickname, ci.pszVal, SIZEOF(nickname)); mir_free(ci.pszVal); } else lcopystr(nickname, _T(""), SIZEOF(nickname)); return nickname; }
void Protocol::UpdateNick() { nickname_initialized = true; nickname = ""; // See if can get one if (!CanGetNick()) return; // Get it CONTACTINFO ci; ZeroMemory(&ci, sizeof(ci)); ci.cbSize = sizeof(ci); ci.hContact = NULL; ci.szProto = (char *) name.c_str(); ci.dwFlag = CNF_DISPLAY; #ifdef UNICODE ci.dwFlag |= CNF_UNICODE; #endif if (!CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM) & ci)) { // CNF_DISPLAY always returns a string type nickname = ci.pszVal; mir_free(ci.pszVal); } }