bool CFFPlugin::GetExtendedInfo(PlugExtendedInfoStruct& PlugExtInfo) const { const PlugExtendedInfoStruct *peis = GetExtendedInfo(); if (peis == NULL) return(FALSE); PlugExtInfo = *peis; return(TRUE); }
int CLC::AddContactToGroup(struct ClcData *dat, struct ClcGroup *group, MCONTACT hContact) { int i = coreCli.pfnAddContactToGroup( dat, group, hContact ); struct ClcContact* p = group->cl.items[i]; p->wStatus = cfg::getWord(hContact, p->proto, "Status", ID_STATUS_OFFLINE); p->xStatus = cfg::getByte(hContact, p->proto, "XStatusId", 0); //p->iRowHeight = -1; if (p->proto) p->bIsMeta = !strcmp(p->proto, cfg::dat.szMetaName); else p->bIsMeta = FALSE; if (p->bIsMeta && cfg::dat.bMetaAvail) { p->hSubContact = db_mc_getMostOnline(hContact); p->metaProto = GetContactProto(p->hSubContact); p->iImage = CallService(MS_CLIST_GETCONTACTICON, (WPARAM) p->hSubContact, 0); } else { p->iImage = CallService(MS_CLIST_GETCONTACTICON, (WPARAM) hContact, 0); p->metaProto = NULL; } p->bSecondLine = cfg::dat.dualRowMode; p->bSecondLineLocal = cfg::getByte(hContact, "CList", "CLN_2ndline", -1); p->dwDFlags = cfg::getDword(hContact, "CList", "CLN_Flags", 0); if(dat->bisEmbedded) p->extraCacheEntry = -1; else { p->extraCacheEntry = cfg::getCache(p->hContact, p->proto); GetExtendedInfo( p, dat); if(p->extraCacheEntry >= 0 && p->extraCacheEntry < cfg::nextCacheEntry) { cfg::eCache[p->extraCacheEntry].proto_status_item = GetProtocolStatusItem(p->bIsMeta ? p->metaProto : p->proto); if(cfg::getByte(p->hContact, "CList", "floating", 0) && g_floatoptions.enabled) { if(cfg::eCache[p->extraCacheEntry].floater == NULL) FLT_Create(p->extraCacheEntry); else { ShowWindow(cfg::eCache[p->extraCacheEntry].floater->hwnd, SW_SHOWNOACTIVATE); FLT_Update(dat, p); } } } LoadAvatarForContact(p); // notify other plugins to re-supply their extra images (icq for xstatus, mBirthday etc...) pcli->pfnSetAllExtraIcons(hContact); } RTL_DetectAndSet( p, p->hContact); p->avatarLeft = p->extraIconRightBegin = -1; p->flags |= cfg::getByte(p->hContact, "CList", "Priority", 0) ? CONTACTF_PRIORITY : 0; return i; }
int AddContactToGroup(struct ClcData *dat, ClcGroup *group, MCONTACT hContact) { int i = coreCli.pfnAddContactToGroup(dat, group, hContact); ClcContact* p = group->cl.items[i]; p->wStatus = cfg::getWord(hContact, p->proto, "Status", ID_STATUS_OFFLINE); p->xStatus = cfg::getByte(hContact, p->proto, "XStatusId", 0); if (p->proto) p->bIsMeta = !strcmp(p->proto, META_PROTO); else p->bIsMeta = FALSE; if (p->bIsMeta && !(cfg::dat.dwFlags & CLUI_USEMETAICONS)) { p->hSubContact = db_mc_getMostOnline(hContact); p->metaProto = GetContactProto(p->hSubContact); p->iImage = pcli->pfnGetContactIcon(p->hSubContact); } else { p->iImage = pcli->pfnGetContactIcon(hContact); p->metaProto = NULL; } p->codePage = cfg::getDword(hContact, "Tab_SRMsg", "ANSIcodepage", cfg::getDword(hContact, "UserInfo", "ANSIcodepage", CP_ACP)); p->bSecondLine = cfg::getByte(hContact, "CList", "CLN_2ndline", cfg::dat.dualRowMode); if (dat->bisEmbedded) p->pExtra = 0; else { p->pExtra = cfg::getCache(p->hContact, p->proto); GetExtendedInfo(p, dat); if (p->pExtra) p->pExtra->proto_status_item = GetProtocolStatusItem(p->bIsMeta ? p->metaProto : p->proto); LoadAvatarForContact(p); // notify other plugins to re-supply their extra images (icq for xstatus, mBirthday etc...) pcli->pfnSetAllExtraIcons(hContact); } RTL_DetectAndSet(p, p->hContact); p->avatarLeft = p->extraIconRightBegin = -1; p->flags |= cfg::getByte(p->hContact, "CList", "Priority", 0) ? CONTACTF_PRIORITY : 0; return i; }