void * AddTempGroup(HWND hwnd,struct ClcData *dat,const TCHAR *szName,DWORD flags,int groupId,int calcTotalMembers)
{
     int i=0;
     int f=0;
     char * szGroupName;
     DWORD groupFlags;
	 if (WildCompare((char*)szName,"* Hidden Group",0))
	 {
		 if(ServiceExists(MS_MC_ADDTOMETA)) return NULL;
		 else return(&dat->list);
	 } 
	 for(i=1;;i++) 
     {
	    szGroupName=(char*)CallService(MS_CLIST_GROUPGETNAME2,i,(LPARAM)&groupFlags);
	    if(szGroupName==NULL) break;
        if (boolstrcmpi(szGroupName,szName)) f=1;
	 }
     if (!f)
     {
        char buf[20];
        char b2[255];
        void * res=NULL;
		_snprintf(buf,sizeof(buf),"%d",(i-1));
        _snprintf(b2,sizeof(b2),"#%s",szName);
        b2[0]=1|GROUPF_EXPANDED;
		DBWriteContactSettingString(NULL,"CListGroups",buf,b2);
        CallService(MS_CLIST_GROUPGETNAME2,i,(LPARAM)&groupFlags);      
        res=AddGroup(hwnd,dat,szName,groupFlags,i,0);
        return res;
     }
    return NULL;
}
BOOL CompareModernMask(ModernMask * mmValue,ModernMask * mmTemplate)
{
    //TODO
    BOOL res=TRUE;
    BOOL exit=FALSE;
    BYTE pVal=0, pTemp=0;
    while (pTemp<mmTemplate->ParamsCount && pVal<mmValue->ParamsCount && !exit) 
    {
      // find pTemp parameter in mValue
      DWORD vh, ph;
      BOOL finded=0;
      ModernParam p=mmTemplate->ParamsList[pTemp];
      ph=p.ParamID;      
      vh=p.ValueHash;
      pVal=0;
      if (p.ParamFlag&4)  //compare by hash     
          while (pVal<mmValue->ParamsCount && mmValue->ParamsList[pVal].ParamFlag !=0)
          {
             if (mmValue->ParamsList[pVal].ParamID==ph)
             {
                 if (mmValue->ParamsList[pVal].ValueHash==vh){finded=1; break;}
                 else {finded=0; break;}
             }   
            pVal++;
          }
      else
          while (mmValue->ParamsList[pVal].ParamFlag!=0)
          {
             if (mmValue->ParamsList[pVal].ParamID==ph)
             {
                 if (WildCompare(mmValue->ParamsList[pVal].Value,p.Value,0)){finded=1; break;}
                 else {finded=0; break;}
             }
             pVal++;
          }
       if (!((finded && !(p.ParamFlag&2)) || (!finded && (p.ParamFlag&2))))
           {res=FALSE; break;}
      pTemp++;
    }
    return res;
};
void * AddTempGroup(HWND hwnd,struct ClcData *dat,const TCHAR *szName,DWORD flags,int groupId,int calcTotalMembers)
{
     int i=0;
     int f=0;
     TCHAR * szGroupName;
     DWORD groupFlags;
#ifdef UNICODE
	 char *mbuf=u2a((TCHAR *)szName);
#else
	char *mbuf=mir_strdup((char *)szName);
#endif
	 if (WildCompare(mbuf,"* Hidden Group",0))
	 {
		 mir_free(mbuf);
		 if(ServiceExists(MS_MC_ADDTOMETA)) return NULL;
		 else return(&dat->list);
	 } 
	 mir_free(mbuf);
	 for(i=1;;i++) 
     {
	    szGroupName=(TCHAR*)CallService(MS_CLIST_GROUPGETNAMET,i,(LPARAM)&groupFlags);
	    if(szGroupName==NULL) break;
        if (!MyStrCmpiT(szGroupName,szName)) f=1;
	 }
     if (!f)
     {
        char buf[20];
        TCHAR b2[255];
        void * res=NULL;
		_snprintf(buf,sizeof(buf),"%d",(i-1));
        _sntprintf(b2,sizeof(b2),_T("#%s"),szName);
        b2[0]=1|GROUPF_EXPANDED;
		DBWriteContactSettingTString(NULL,"CListGroups",buf,b2);
        CallService(MS_CLIST_GROUPGETNAMET,i,(LPARAM)&groupFlags);      
        res=AddGroup(hwnd,dat,szName,groupFlags,i,0);
        return res;
     }
    return NULL;
}
void * AddTempGroup(HWND hwnd,struct ClcData *dat,const TCHAR *szName,DWORD flags,int groupId,int calcTotalMembers)
{
	int i=0;
	int f=0;
	TCHAR * szGroupName;
	DWORD groupFlags;
#ifdef UNICODE
	char *mbuf=u2a((TCHAR *)szName);
#else
	char *mbuf=mir_strdup((char *)szName);
#endif
	if (WildCompare(mbuf,"-@-HIDDEN-GROUP-@-",0))
	{
		mir_free(mbuf);
		return NULL;
	} 
	mir_free(mbuf);
	for(i=1;;i++) 
	{
		szGroupName = pcli->pfnGetGroupName(i,&groupFlags);
		if(szGroupName==NULL) break;
		if (!mir_tstrcmpi(szGroupName,szName)) f=1;
	}
	if (!f)
	{
		char buf[20];
		TCHAR b2[255];
		void * res=NULL;
		_snprintf(buf,sizeof(buf),"%d",(i-1));
		_sntprintf(b2,sizeof(b2),_T("#%s"),szName);
		b2[0]=1|GROUPF_EXPANDED;
		DBWriteContactSettingTString(NULL,"CListGroups",buf,b2);
		pcli->pfnGetGroupName(i,&groupFlags);      
		res=cli_AddGroup(hwnd,dat,szName,groupFlags,i,0);
		return res;
	}
	return NULL;
}
Beispiel #5
0
static void MatchMasks(TCHAR* szMirVer, short *base, short *overlay, short *overlay2, short *overlay3, short *overlay4)
{
	int i = 0, j = -1, k = -1, n = -1, m = -1;

	for (i = 0; i < DEFAULT_KN_FP_MASK_COUNT; i++) {
		KN_FP_MASK& p = def_kn_fp_mask[i];
		if (p.hIcolibItem == NULL)
			continue;

		if (!WildCompareW(szMirVer, p.szMaskUpper))
			continue;

		if (p.iIconIndex != IDI_NOTFOUND && p.iIconIndex != IDI_UNKNOWN && p.iIconIndex != IDI_UNDETECTED) {
			TCHAR destfile[MAX_PATH];
			_tcsncpy_s(destfile, g_szSkinLib, _TRUNCATE);

			struct _stat64i32 stFileInfo;
			if (_tstat(destfile, &stFileInfo) == -1)
				i = NOTFOUND_MASK_NUMBER;
		}
		break;
	}
	if (i == DEFAULT_KN_FP_MASK_COUNT - 1)
		i = -1;

	else if (!def_kn_fp_mask[i].fNotUseOverlay && i < DEFAULT_KN_FP_MASK_COUNT) {
		for (j = 0; j < DEFAULT_KN_FP_OVERLAYS_COUNT; j++) {
			KN_FP_MASK& p = def_kn_fp_overlays_mask[j];
			if (p.hIcolibItem == NULL)
				continue;

			if (!WildCompare(szMirVer, p.szMaskUpper))
				continue;

			struct _stat64i32 stFileInfo;
			if (_tstat(g_szSkinLib, &stFileInfo) != -1)
				break;
		}

		for (k = 0; k < DEFAULT_KN_FP_OVERLAYS2_COUNT; k++) {
			KN_FP_MASK& p = def_kn_fp_overlays2_mask[k];
			if (p.hIcolibItem == NULL)
				continue;

			if (WildCompareW(szMirVer, p.szMaskUpper))
				break;
		}

		for (n = 0; n < DEFAULT_KN_FP_OVERLAYS3_COUNT; n++) {
			KN_FP_MASK& p = def_kn_fp_overlays3_mask[n];
			if (p.hIcolibItem == NULL)
				continue;

			if (WildCompareW(szMirVer, p.szMaskUpper))
				break;
		}

		for (m = 0; m < DEFAULT_KN_FP_OVERLAYS4_COUNT; m++) {
			KN_FP_MASK& p = def_kn_fp_overlays4_mask[m];
			if (p.hIcolibItem == NULL)
				continue;

			if (WildCompareW(szMirVer, p.szMaskUpper))
				break;
		}
	}

	*base = (i < DEFAULT_KN_FP_MASK_COUNT) ? i : -1;
	*overlay = (j < DEFAULT_KN_FP_OVERLAYS_COUNT) ? j : -1;
	*overlay2 = (k < DEFAULT_KN_FP_OVERLAYS2_COUNT) ? k : -1;
	*overlay3 = (n < DEFAULT_KN_FP_OVERLAYS3_COUNT) ? n : -1;
	*overlay4 = (m < DEFAULT_KN_FP_OVERLAYS4_COUNT) ? m : -1;
}