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;
}
Ejemplo n.º 2
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;
}
Ejemplo n.º 4
0
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;
}