void YahooConnection::cbGotBuddies(YList* buds) { fGotBuddyList = true; std::list<struct yahoo_buddy> yabs; // copy from buds to buddies... for(; buds; buds = buds->next) { struct yahoo_buddy* bud = (struct yahoo_buddy* )buds->data; if (bud->real_name) yabs.push_back( *bud ); fBuddies.push_back( bud->id ); //yahoo_buddyicon_request(fID, bud->id); } printf("id %d\n", fID); // add waiting buddies for ( std::list<std::string>::iterator iter=fBuddiesToAdd.begin(); iter != fBuddiesToAdd.end(); iter++) { AddBuddy( (*iter).c_str() ); } fBuddiesToAdd.clear(); // Tell the manager! fManager->GotBuddyList( fBuddies ); fManager->GotContactsInfo( yabs ); }
int __cdecl CYahooProto::AuthRequest(MCONTACT hContact, const TCHAR* msg ) { debugLogA("[YahooSendAuthRequest]"); if (hContact && m_bLoggedIn) { AddBuddy(hContact, "miranda", msg); return 0; // Success } return 1; // Failure }
Buddy *MSNManager::BuddyDetails(const char *passport) { Buddy *bud = NULL; buddymap::iterator bIt = fBuddy.find(passport); if (bIt != fBuddy.end()) bud = bIt->second; else { // new buddy, add it! bud = new Buddy(passport); fBuddy[passport] = bud; // request an add to list here as well, I suppose.. AddBuddy( passport ); } return bud; };
INT_PTR __cdecl CYahooProto::OnSettingChanged(WPARAM wParam, LPARAM lParam) { DBCONTACTWRITESETTING *cws = (DBCONTACTWRITESETTING *) lParam; if ((HANDLE) wParam == NULL) return 0; if (!m_bLoggedIn) return 0; if (!strcmp(cws->szModule, "CList")) { // A temporary contact has been added permanently if (!strcmp(cws->szSetting, "NotOnList")) { if (DBGetContactSettingByte((HANDLE) wParam, "CList", "Hidden", 0)) return 0; if (cws->value.type == DBVT_DELETED || (cws->value.type == DBVT_BYTE && cws->value.bVal == 0)) { DBVARIANT dbv; if ( !DBGetContactSettingString( (HANDLE) wParam, m_szModuleName, YAHOO_LOGINID, &dbv )){ DebugLog("Adding Permanently %s to list.", dbv.pszVal); AddBuddy(dbv.pszVal,GetWord((HANDLE) wParam, "yprotoid", 0), "miranda", NULL); DBFreeVariant(&dbv); } } } }else if (!strcmp(cws->szModule, m_szModuleName) && !strcmp(cws->szSetting, "ApparentMode")) { DBVARIANT dbv; DebugLog("DB Setting changed. YAHOO user's visible setting changed."); if ( !DBGetContactSettingString( (HANDLE) wParam, m_szModuleName, YAHOO_LOGINID, &dbv )){ int iAdd = (ID_STATUS_OFFLINE == DBGetContactSettingWord((HANDLE) wParam, m_szModuleName, "ApparentMode", 0)); stealth(dbv.pszVal, iAdd); DBFreeVariant(&dbv); } } return 0; }