static int PushIconLibRegistration( TCHAR* TransportDomain ) //need to push Imagelist addition to { if ( ServiceExists( MS_SKIN2_ADDICON )) { char* domain = t2a(TransportDomain); int result = GetTransportStatusIconIndex(GetTransportProtoID(domain),ID_STATUS_OFFLINE); mir_free( domain ); return result; } return 0; }
INT_PTR __cdecl CJabberProto::JGetAdvancedStatusIcon(WPARAM hContact, LPARAM) { if (!hContact) return -1; if (!getByte(hContact, "IsTransported", 0)) return -1; int iID = GetTransportProtoID( ptrT( getTStringA(hContact, "Transport"))); if (iID < 0) return -1; WORD Status = getWord(hContact, "Status", ID_STATUS_OFFLINE); if (Status < ID_STATUS_OFFLINE) Status = ID_STATUS_OFFLINE; else if (Status > ID_STATUS_INVISIBLE) Status = ID_STATUS_ONLINE; return GetTransportStatusIconIndex(iID, Status); }
int JGetAdvancedStatusIcon(WPARAM wParam, LPARAM lParam) { HANDLE hContact=(HANDLE) wParam; DBVARIANT dbv={0}; char * Transport=NULL; int res=-1; int iID=-1; if (!hContact) return -1; if (!JGetByte(hContact,"IsTransported",0)) return -1; if (JGetStringUtf(hContact,"Transport",&dbv)) return -1; iID=GetTransportProtoID(dbv.pszVal); if (iID>=0) { WORD Status=ID_STATUS_OFFLINE; Status = JGetWord(hContact,"Status",ID_STATUS_OFFLINE); if (Status<ID_STATUS_OFFLINE) Status = ID_STATUS_OFFLINE; else if (Status>ID_STATUS_INVISIBLE) Status = ID_STATUS_ONLINE; res = GetTransportStatusIconIndex(iID,Status); } DBFreeVariant(&dbv); return res; }
BOOL CJabberProto::DBCheckIsTransportedContact(const TCHAR *jid, HANDLE hContact) { // check if transport is already set if (!jid || !hContact) return FALSE; // strip domain part from jid TCHAR *domain = _tcschr((TCHAR*)jid, '@'); BOOL isAgent = (domain == NULL) ? TRUE : FALSE; BOOL isTransported = FALSE; if (domain != NULL) domain = NEWTSTR_ALLOCA(domain+1); else domain = NEWTSTR_ALLOCA(jid); TCHAR *resourcepos = _tcschr(domain, '/'); if (resourcepos != NULL) *resourcepos = '\0'; for (int i=0; i < SIZEOF(TransportProtoTable); i++) if (MatchMask(domain, TransportProtoTable[i].mask)) { GetTransportStatusIconIndex(GetTransportProtoID(domain), ID_STATUS_OFFLINE); isTransported = TRUE; break; } if (m_lstTransports.getIndex(domain) == -1 && isAgent) { m_lstTransports.insert( mir_tstrdup(domain)); setByte(hContact, "IsTransport", 1); } if (isTransported) { setTString(hContact, "Transport", domain); setByte(hContact, "IsTransported", 1); } return isTransported; }