コード例 #1
0
void import_ping_address(int index, PINGADDRESS &pa) {
	DBVARIANT dbv;
	char buf[256];
	mir_snprintf(buf, 256, "Address%d", index);
	if(!DBGetContactSetting(0, "PingPlug", buf, &dbv)) {
		strncpy(pa.pszName, dbv.pszVal, MAX_PINGADDRESS_STRING_LENGTH);
		DBFreeVariant(&dbv);
	} else
		strcpy(pa.pszName, Translate("Unknown Address"));

	mir_snprintf(buf, 256, "Label%d", index);
	if(!DBGetContactSetting(0, "PingPlug", buf, &dbv)) {
		strncpy(pa.pszLabel, dbv.pszVal, MAX_PINGADDRESS_STRING_LENGTH);
		DBFreeVariant(&dbv);
	} else
		strcpy(pa.pszLabel, Translate("Unknown"));

	mir_snprintf(buf, 256, "Port%d", index);
	pa.port = (int)DBGetContactSettingDword(0, "PingPlug", buf, -1);

	mir_snprintf(buf, 256, "Proto%d", index);
	if(!DBGetContactSetting(0, "PingPlug", buf, &dbv)) {
		strncpy(pa.pszProto, dbv.pszVal, MAX_PINGADDRESS_STRING_LENGTH);
		DBFreeVariant(&dbv);
		mir_snprintf(buf, 256, "Status%d", index);
		pa.set_status = DBGetContactSettingWord(0, "PingPlug", buf, ID_STATUS_ONLINE);
		mir_snprintf(buf, 256, "Status2%d", index);
		pa.get_status = DBGetContactSettingWord(0, "PingPlug", buf, ID_STATUS_OFFLINE);
	} else
		pa.pszProto[0] = '\0';


	pa.responding = false;
	pa.round_trip_time = 0;
	pa.miss_count = 0;
	pa.index = index;
	pa.pszCommand[0] = '\0';
	pa.pszParams[0] = '\0';

	pa.item_id = 0;
	mir_snprintf(buf, 256, "Enabled%d", index);
	if(DBGetContactSettingByte(0, "PingPlug", buf, 1) == 1)
		pa.status = PS_NOTRESPONDING;
	else
		pa.status = PS_DISABLED;
}
コード例 #2
0
ファイル: tlen.c プロジェクト: BackupTheBerlios/mtlen-svn
int TlenMenuHandleInbox(WPARAM wParam, LPARAM lParam)
{
	DBVARIANT dbv;
	char *login = NULL, *password = NULL;
	char szFileName[ MAX_PATH ];
	if (DBGetContactSettingByte(NULL, jabberProtoName, "SavePassword", TRUE) == TRUE) {
		int tPathLen;
		CallService( MS_DB_GETPROFILEPATH, MAX_PATH, (LPARAM) szFileName );
		tPathLen = strlen( szFileName );
		tPathLen += mir_snprintf( szFileName + tPathLen, MAX_PATH - tPathLen, "\\%s\\", jabberModuleName);
		CreateDirectoryA( szFileName, NULL );
		mir_snprintf( szFileName + tPathLen, MAX_PATH - tPathLen, "openinbox.html" );
		if (!DBGetContactSetting(NULL, jabberProtoName, "LoginName", &dbv)) {
			login = mir_strdup(dbv.pszVal);
			DBFreeVariant(&dbv);

		}
		if (!DBGetContactSetting(NULL, jabberProtoName, "Password", &dbv)) {
			CallService(MS_DB_CRYPT_DECODESTRING, strlen(dbv.pszVal)+1, (LPARAM) dbv.pszVal);
			password = mir_strdup(dbv.pszVal);
			DBFreeVariant(&dbv);
		}
	} 
	if (login != NULL && password != NULL) {
		FILE *out;
		out = fopen( szFileName, "wt" );
		if ( out != NULL ) {
			fprintf(out, "<html><head></head><body OnLoad=\"document.forms[0].submit();\">"
						 "<form action=\"http://poczta.o2.pl/index.php\" method=\"post\" name=\"login_form\">"
						 "<input type=\"hidden\" name=\"username\" value=\"%s\">"
						 "<input type=\"hidden\" name=\"password\" value=\"%s\">"
						 "</form></body></html>", login, password);
			fclose( out );
		} else {
			strcat(szFileName, "http://poczta.o2.pl/");
		}
	} else {
		strcat(szFileName, "http://poczta.o2.pl/");
	}
	mir_free(login);
	mir_free(password);
	CallService(MS_UTILS_OPENURL, (WPARAM) 1, (LPARAM) szFileName);
	return 0;
}
コード例 #3
0
LPSTR myDBGetString(HANDLE hContact,const char *szModule,const char *szSetting) {
	char *val=NULL;
	DBVARIANT dbv;
	dbv.type = DBVT_ASCIIZ;
	DBGetContactSetting(hContact,szModule,szSetting,&dbv);
	if( dbv.pszVal && (dbv.type==DBVT_ASCIIZ || dbv.type==DBVT_UTF8 || dbv.type==DBVT_WCHAR) )
		val = mir_strdup(dbv.pszVal);
	DBFreeVariant(&dbv);
	return val;
}
コード例 #4
0
char *JabberJIDFromHContact(TlenProtocol *proto, HANDLE hContact)
{
	char *p = NULL;
	DBVARIANT dbv;
	if (!DBGetContactSetting(hContact, proto->iface.m_szModuleName, "jid", &dbv)) {
		p = mir_strdup(dbv.pszVal);
		DBFreeVariant(&dbv);
	}
	return p;
}
コード例 #5
0
ファイル: svcs_rsa.cpp プロジェクト: aventado/secureimplugin
int __cdecl rsa_check_pub(HANDLE context, PBYTE pub, int pubLen, PBYTE sig, int sigLen) {
	int v=0, k=0;
	pUinKey ptr = getUinCtx(context); if(!ptr) return 0;
	LPSTR cnm = (LPSTR) mir_alloc(NAMSIZE); getContactNameA(ptr->hContact,cnm);
	LPSTR uin = (LPSTR) mir_alloc(KEYSIZE); getContactUinA(ptr->hContact,uin);
	LPSTR msg = (LPSTR) mir_alloc(MSGSIZE);
	LPSTR sha = mir_strdup(to_hex(sig,sigLen));
	LPSTR sha_old = NULL;
#if defined(_DEBUG) || defined(NETLIB_LOG)
	Sent_NetLog("rsa_check_pub: %s %s %s", cnm, uin, sha);
#endif
	DBVARIANT dbv;
	dbv.type = DBVT_BLOB;
	if( DBGetContactSetting(ptr->hContact,szModuleName,"rsa_pub",&dbv) == 0 ) {
		k = 1;
		PBYTE buf = (PBYTE) alloca(sigLen); int len;
		exp->rsa_get_hash((PBYTE)dbv.pbVal,dbv.cpbVal,(PBYTE)buf,&len);
		sha_old = mir_strdup(to_hex(buf,len));
		DBFreeVariant(&dbv);
	}
	if( bAAK ) {
		if( k )	mir_snprintf(msg,MSGSIZE,Translate(sim523),cnm,uin,sha,sha_old);
		else	mir_snprintf(msg,MSGSIZE,Translate(sim521),cnm,uin,sha);
		showPopUpKRmsg(ptr->hContact,msg);
		HistoryLog(ptr->hContact,msg);
		v = 1;
#if defined(_DEBUG) || defined(NETLIB_LOG)
		Sent_NetLog("rsa_check_pub: auto accepted");
#endif
	}
	else {
		if( k ) mir_snprintf(msg,MSGSIZE,Translate(sim522),cnm,sha,sha_old);
		else	mir_snprintf(msg,MSGSIZE,Translate(sim520),cnm,sha);
		v = (msgbox(0,msg,szModuleName,MB_YESNO|MB_ICONQUESTION)==IDYES);
#if defined(_DEBUG) || defined(NETLIB_LOG)
		Sent_NetLog("rsa_check_pub: manual accepted %d",v);
#endif
	}
	if(v) {
		DBCONTACTWRITESETTING cws;
		cws.szModule = szModuleName;
		cws.szSetting = "rsa_pub";
		cws.value.type = DBVT_BLOB;
		cws.value.pbVal = pub;
		cws.value.cpbVal = pubLen;
		CallService(MS_DB_CONTACT_WRITESETTING, (WPARAM)ptr->hContact, (LPARAM)&cws);
		ptr->keyLoaded = true;
	}
	mir_free(cnm);
	mir_free(uin);
	mir_free(msg);
	mir_free(sha);
	SAFE_FREE(sha_old);
	return v;
}
コード例 #6
0
void FinalCommandSetup(void) {
	DBVARIANT dbv;

	if(!DBGetContactSetting(0, "db3x", "ExitCommand", &dbv) && dbv.type == DBVT_ASCIIZ) {
		strncpy(exit_command, dbv.pszVal, MAX_PATH);
		command_valid = TRUE;
		DBFreeVariant(&dbv);

		if(!DBGetContactSetting(0, "db3x", "ExitCommandParams", &dbv) && dbv.type == DBVT_ASCIIZ) {
			strncpy(exit_command_params, dbv.pszVal, MAX_PATH);
			command_params_valid = TRUE;
			DBFreeVariant(&dbv);
		}
		if(!DBGetContactSetting(0, "db3x", "ExitCommandDir", &dbv) && dbv.type == DBVT_ASCIIZ) {
			strncpy(exit_command_dir, dbv.pszVal, MAX_PATH);
			command_dir_valid = TRUE;
			DBFreeVariant(&dbv);
		}
	}
}
コード例 #7
0
ファイル: tlen.c プロジェクト: BackupTheBerlios/mtlen-svn
static int TlenPrebuildContactMenu(void *ptr, WPARAM wParam, LPARAM lParam)
{
    HANDLE hContact;
    DBVARIANT dbv;
    CLISTMENUITEM clmi = {0};
    JABBER_LIST_ITEM *item;
    TlenProtocol *proto = (TlenProtocol *)ptr;
    clmi.cbSize = sizeof(CLISTMENUITEM);
    if ((hContact=(HANDLE) wParam)!=NULL && proto->isOnline) {
        if (!DBGetContactSetting(hContact, proto->iface.m_szModuleName, "jid", &dbv)) {
            if ((item=JabberListGetItemPtr(proto, LIST_ROSTER, dbv.pszVal)) != NULL) {
                if (item->subscription==SUB_NONE || item->subscription==SUB_FROM)
                    clmi.flags = CMIM_FLAGS;
                else
                    clmi.flags = CMIM_FLAGS|CMIF_HIDDEN;
                CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) proto->hMenuContactRequestAuth, (LPARAM) &clmi);

                if (item->subscription==SUB_NONE || item->subscription==SUB_TO)
                    clmi.flags = CMIM_FLAGS;
                else
                    clmi.flags = CMIM_FLAGS|CMIF_HIDDEN;
                CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) proto->hMenuContactGrantAuth, (LPARAM) &clmi);

                if (item->status!=ID_STATUS_OFFLINE)
                    clmi.flags = CMIM_FLAGS;
                else
                    clmi.flags = CMIM_FLAGS|CMIF_HIDDEN;
                CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) proto->hMenuContactMUC, (LPARAM) &clmi);

                if (item->status!=ID_STATUS_OFFLINE && !TlenVoiceIsInUse(proto))
                    clmi.flags = CMIM_FLAGS;
                else
                    clmi.flags = CMIM_FLAGS|CMIF_HIDDEN;
                CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) proto->hMenuContactVoice, (LPARAM) &clmi);

                if (item->status!=ID_STATUS_OFFLINE)
                    clmi.flags = CMIM_FLAGS;
                else
                    clmi.flags = CMIM_FLAGS|CMIF_HIDDEN;
                CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) proto->hMenuPicture, (LPARAM) &clmi);

                DBFreeVariant(&dbv);
                return 0;
            }
            DBFreeVariant(&dbv);
        }
    }
    clmi.flags = CMIM_FLAGS|CMIF_HIDDEN;
    CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) proto->hMenuContactMUC, (LPARAM) &clmi);
    CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) proto->hMenuContactVoice, (LPARAM) &clmi);
    CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) proto->hMenuContactRequestAuth, (LPARAM) &clmi);
    CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) proto->hMenuContactGrantAuth, (LPARAM) &clmi);
    return 0;
}
コード例 #8
0
ファイル: icq_db.cpp プロジェクト: raoergsls/miranda
void CIcqProto::setStatusMsgVar(HANDLE hContact, char* szStatusMsg, bool isAnsi)
{
	if (szStatusMsg && szStatusMsg[0])
	{
		if (isAnsi)
		{
			char* szStatusNote = getSettingStringUtf(hContact, DBSETTING_STATUS_NOTE, "");
			wchar_t* szStatusNoteW = make_unicode_string(szStatusNote);
			int len = (int)wcslen(szStatusNoteW) * 3 + 1;
			char* szStatusNoteAnsi = (char*)alloca(len);
			WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, szStatusNoteW, -1, szStatusNoteAnsi, len, NULL, NULL);
			bool notmatch = false;
			for (int i=0; ;++i)
			{
				if (szStatusNoteAnsi[i] != szStatusMsg[i] && szStatusNoteAnsi[i] != '?' && szStatusMsg[i] != '?')
				{
					notmatch = true;
					break;
				}
				if (!szStatusNoteAnsi[i] || !szStatusMsg[i])
					break;
			}
			szStatusMsg = notmatch ? ansi_to_utf8(szStatusMsg) : szStatusNote;
			SAFE_FREE(&szStatusNoteW);
			if (notmatch) SAFE_FREE(&szStatusNote);
		}

		char* oldStatusMsg = NULL;
		DBVARIANT dbv;
		if (!DBGetContactSetting(hContact, "CList", "StatusMsg", &dbv))
		{
			switch (dbv.type)
			{
			case DBVT_UTF8:
				oldStatusMsg = null_strdup(dbv.pszVal);
				break;

			case DBVT_WCHAR:
				oldStatusMsg = make_utf8_string(dbv.pwszVal);
				break;
			}
			ICQFreeVariant(&dbv);
		}
			
		if (!oldStatusMsg || strcmp(oldStatusMsg, szStatusMsg))
			setSettingStringUtf(hContact, "CList", "StatusMsg", szStatusMsg);
		SAFE_FREE(&oldStatusMsg);
		if (isAnsi) SAFE_FREE(&szStatusMsg);
	}
	else
		DBDeleteContactSetting(hContact, "CList", "StatusMsg");
}
コード例 #9
0
BYTE isContactSecured(HANDLE hContact) {
	// нужна проверка на Offline и в этом случае другие статусы
	if (!clist_cnt) return 0;

	BYTE r=0;
	if( isProtoMetaContacts(hContact) )
		hContact = getMostOnline(hContact); // возьмем тот, через который пойдет сообщение

	for(int j=0;j<clist_cnt;j++) {
		if( clist[j].hContact == hContact ) {
			if( !clist[j].proto->inspecting ) break;
       			DBVARIANT dbv;
			r=clist[j].mode;
			switch(r) {
			case MODE_NATIVE:
				if(cpp_keyx(clist[j].cntx)!=0) r|=SECURED;
				break;
			case MODE_PGP:
				DBGetContactSetting(hContact,szModuleName,"pgp",&dbv);
				if( dbv.type!=0 ) r|=SECURED;
				DBFreeVariant(&dbv);
				break;
			case MODE_GPG:
				DBGetContactSetting(hContact,szModuleName,"gpg",&dbv);
				if( dbv.type!=0 ) r|=SECURED;
				DBFreeVariant(&dbv);
				break;
			case MODE_RSAAES:
				if(exp->rsa_get_state(clist[j].cntx)==7) r|=SECURED;
				break;
			case MODE_RSA:
				if(clist[j].cntx) r|=SECURED;
				break;
			}
			break;
		}
	}
	return r; // (mode&SECURED) - проверка на EST/DIS
}
コード例 #10
0
ファイル: tlen.c プロジェクト: BackupTheBerlios/mtlen-svn
INT_PTR TlenContactMenuHandleGrantAuth(void *ptr, WPARAM wParam, LPARAM lParam)
{
    HANDLE hContact;
    DBVARIANT dbv;
    TlenProtocol *proto = (TlenProtocol *)ptr;
    if ((hContact=(HANDLE) wParam)!=NULL && proto->isOnline) {
        if (!DBGetContactSetting(hContact, proto->iface.m_szModuleName, "jid", &dbv)) {
            JabberSend(proto, "<presence to='%s' type='subscribed'/>", dbv.pszVal);
            DBFreeVariant(&dbv);
        }
    }
    return 0;
}
コード例 #11
0
ファイル: tlen.c プロジェクト: BackupTheBerlios/mtlen-svn
int TlenContactMenuHandleGrantAuth(WPARAM wParam, LPARAM lParam)
{
	HANDLE hContact;
	DBVARIANT dbv;

	if ((hContact=(HANDLE) wParam)!=NULL && jabberOnline) {
		if (!DBGetContactSetting(hContact, jabberProtoName, "jid", &dbv)) {
			JabberSend(jabberThreadInfo->s, "<presence to='%s' type='subscribed'/>", dbv.pszVal);
			DBFreeVariant(&dbv);
		}
	}
	return 0;
}
コード例 #12
0
char *DBGetStringA(HANDLE hContact,const char *szModule,const char *szSetting)
{
	char *str=NULL;
    DBVARIANT dbv={0};
	DBGetContactSetting(hContact,szModule,szSetting,&dbv);
	if(dbv.type==DBVT_ASCIIZ)
    {
        str=mir_strdup(dbv.pszVal);
        mir_free(dbv.pszVal);
    }
    DBFreeVariant(&dbv);
	return str;
}
コード例 #13
0
ファイル: tlen_muc.c プロジェクト: BackupTheBerlios/mtlen-svn
static char *getDisplayName(const char *id) 
{
	char jid[256];
	HANDLE hContact;
	DBVARIANT dbv;
	if (!DBGetContactSetting(NULL, jabberProtoName, "LoginServer", &dbv)) {
		_snprintf(jid, sizeof(jid), "%s@%s", id, dbv.pszVal);
		DBFreeVariant(&dbv);
		if ((hContact=JabberHContactFromJID(jid)) != NULL) {
			return _strdup((char *) CallService(MS_CLIST_GETCONTACTDISPLAYNAME, (WPARAM) hContact, 0));
		}
	}
	return _strdup(id);
}
コード例 #14
0
ファイル: svcs_rsa.cpp プロジェクト: TonyAlloa/miranda-dev
// загружает паблик-ключ в RSA контекст
BYTE loadRSAkey(pUinKey ptr) {
    if( !ptr->keyLoaded ) {
        DBVARIANT dbv;
        dbv.type = DBVT_BLOB;
        if(	DBGetContactSetting(ptr->hContact,szModuleName,"rsa_pub",&dbv) == 0 ) {
            ptr->keyLoaded = exp->rsa_set_pubkey(ptr->cntx,dbv.pbVal,dbv.cpbVal);
#if defined(_DEBUG) || defined(NETLIB_LOG)
            Sent_NetLog("loadRSAkey %d", ptr->keyLoaded);
#endif
            DBFreeVariant(&dbv);
        }
    }
    return ptr->keyLoaded;
}
コード例 #15
0
ファイル: tlen.c プロジェクト: BackupTheBerlios/mtlen-svn
int TlenContactMenuHandleSendPicture(WPARAM wParam, LPARAM lParam)
{
	HANDLE hContact;
	DBVARIANT dbv;

	if ((hContact=(HANDLE) wParam)!=NULL && jabberOnline) {
		if (!DBGetContactSetting(hContact, jabberProtoName, "jid", &dbv)) {
			JabberSend(jabberThreadInfo->s, "<message type='pic' to='*****@*****.**' crc='da4fe23' idt='2174' size='21161'/>");
//			JabberSend(jabberThreadInfo->s, "<message type='pic' to='%s' crc='b4f7bdd' idt='6195' size='5583'/>", dbv.pszVal);
			DBFreeVariant(&dbv);
		}
	}
	return 0;
}
コード例 #16
0
void import_ping_address(int index, PINGADDRESS &pa) {
	std::ostringstream os1, os2, os3, os4, os5, os6, os7;
	os1 << "Address" << index;
	os2 << "Label" << index;
	os3 << "Enabled" << index;
	os4 << "Port" << index;
	os5 << "Proto" << index;
	os6 << "Status" << index;
	os7 << "Status2" << index;

	DBVARIANT dbv;
	DBGetContactSetting(0, "PingPlug", os1.str().c_str(), &dbv);
	strncpy(pa.pszName, dbv.pszVal, MAX_PINGADDRESS_STRING_LENGTH);
	DBFreeVariant(&dbv);
	DBGetContactSetting(0, "PingPlug", os2.str().c_str(), &dbv);
	strncpy(pa.pszLabel, dbv.pszVal, MAX_PINGADDRESS_STRING_LENGTH);
	DBFreeVariant(&dbv);

	pa.port = (int)DBGetContactSettingDword(0, "PingPlug", os4.str().c_str(), (DWORD)-1);

	DBGetContactSetting(0, "PingPlug", os5.str().c_str(), &dbv);
	strncpy(pa.pszProto, dbv.pszVal, MAX_PINGADDRESS_STRING_LENGTH);
	DBFreeVariant(&dbv);

	pa.set_status = DBGetContactSettingWord(0, "PingPlug", os6.str().c_str(), ID_STATUS_ONLINE);
	pa.get_status = DBGetContactSettingWord(0, "PingPlug", os7.str().c_str(), ID_STATUS_OFFLINE);

	pa.responding = false;
	pa.round_trip_time = 0;
	pa.miss_count = 0;
	pa.index = index;
	pa.pszCommand[0] = '\0';

	pa.hContact = 0;
	pa.status = options.nrstatus;
}
コード例 #17
0
wchar_t *DBGetStringW(HANDLE hContact,const char *szModule,const char *szSetting)
{
	wchar_t *str=NULL;
	DBVARIANT dbv={0};
	DBGetContactSetting(hContact,szModule,szSetting,&dbv);
	if(dbv.type==DBVT_WCHAR)
	{
		str=mir_strdupW(dbv.pwszVal);
		mir_free(dbv.pwszVal);
	}
	//else  TODO if no unicode string (only ansi)
	//
	DBFreeVariant(&dbv);
	return str;
}
コード例 #18
0
ファイル: services.cpp プロジェクト: TonyAlloa/miranda-dev
/*static*/ void ContactDoubleclicked(WPARAM wParam, LPARAM lParam)
{
	DBVARIANT dbv;
	char *szProto;
	HACCOUNT ActualAccount;

	szProto = (char *)CallService(MS_PROTO_GETCONTACTBASEPROTO, wParam, 0);
	if(szProto != NULL && strcmp(szProto, ProtoName)==0)
	{
		if(!DBGetContactSetting((HANDLE) wParam,ProtoName,"Id",&dbv)) 
		{
			ActualAccount=(HACCOUNT) CallService(MS_YAMN_FINDACCOUNTBYNAME,(WPARAM)POP3Plugin,(LPARAM)dbv.pszVal);
			if(ActualAccount != NULL)
			{
				#ifdef DEBUG_SYNCHRO
				DebugLog(SynchroFile,"Service_ContactDoubleclicked:ActualAccountSO-read wait\n");
				#endif
				if(WAIT_OBJECT_0==WaitToReadFcn(ActualAccount->AccountAccessSO))
				{
					#ifdef DEBUG_SYNCHRO
					DebugLog(SynchroFile,"Service_ContactDoubleclicked:ActualAccountSO-read enter\n");
					#endif
					YAMN_MAILBROWSERPARAM Param={(HANDLE)0,ActualAccount,ActualAccount->NewMailN.Flags,ActualAccount->NoNewMailN.Flags,0};

					Param.nnflags=Param.nnflags | YAMN_ACC_MSG;			//show mails in account even no new mail in account
					Param.nnflags=Param.nnflags & ~YAMN_ACC_POP;

					Param.nflags=Param.nflags | YAMN_ACC_MSG;			//show mails in account even no new mail in account
					Param.nflags=Param.nflags & ~YAMN_ACC_POP;

					RunMailBrowserSvc((WPARAM)&Param,(LPARAM)YAMN_MAILBROWSERVERSION);
					
					#ifdef DEBUG_SYNCHRO
					DebugLog(SynchroFile,"Service_ContactDoubleclicked:ActualAccountSO-read done\n");
					#endif
					ReadDoneFcn(ActualAccount->AccountAccessSO);
				}
				#ifdef DEBUG_SYNCHRO
				else
					DebugLog(SynchroFile,"Service_ContactDoubleclicked:ActualAccountSO-read enter failed\n");
				#endif
				
			}
			DBFreeVariant(&dbv);
		}

	}
}
コード例 #19
0
BOOL isContactGPG(HANDLE hContact) {

	if(!bGPGloaded || !bGPGkeyrings) return false;
	if (!clist_cnt) return false;
	for(int j=0;j<clist_cnt;j++) {
	    if (clist[j].hContact == hContact) {
		if( !clist[j].proto->inspecting ) break;
	    	if( clist[j].mode!=MODE_GPG ) break;
        	DBVARIANT dbv;
        	DBGetContactSetting(hContact,szModuleName,"gpg",&dbv);
        	BOOL r=(dbv.type!=0);
        	DBFreeVariant(&dbv);
        	return r;
	    }
	}
	return false;
}
コード例 #20
0
BOOL isContactPGP(HANDLE hContact) {

	if(!bPGPloaded || (!bPGPkeyrings && !bPGPprivkey)) return false;
	if (!clist_cnt) return false;
	for(int j=0;j<clist_cnt;j++) {
	    if (clist[j].hContact == hContact) {
		if( !clist[j].proto->inspecting ) break;
	    	if( clist[j].mode!=MODE_PGP ) break;
        	DBVARIANT dbv;
        	DBGetContactSetting(hContact,szModuleName,"pgp",&dbv);
        	BOOL r=(dbv.type!=0);
        	DBFreeVariant(&dbv);
        	return r;
	    }
	}
	return false;
}
コード例 #21
0
ファイル: menu.c プロジェクト: BackupTheBerlios/mgoodies-svn
int BuildContactMenu(WPARAM wparam,LPARAM lparam)
{
	CLISTMENUITEM cmi;
	DBVARIANT dbv;
	int id=-1,isetting;
	HANDLE hContact;
	char *szProto;

	hContact = (HANDLE)wparam;
	szProto=(char*)CallService(MS_PROTO_GETCONTACTBASEPROTO,(WPARAM)hContact,0);


	ZeroMemory(&cmi,sizeof(cmi));
	cmi.cbSize=sizeof(cmi);
	if(!IsWatchedProtocol(szProto) || !DBGetContactSettingByte(NULL,S_MOD,"MenuItem",1))
	{
		cmi.flags=CMIM_FLAGS|CMIF_HIDDEN;
	}
	else
	{
		cmi.flags=CMIM_NAME|CMIM_FLAGS|CMIM_ICON;
		cmi.hIcon=NULL;
		cmi.pszName=ParseString(!DBGetContactSetting(NULL,S_MOD,"MenuStamp",&dbv)?dbv.pszVal:DEFAULT_MENUSTAMP,(HANDLE)wparam,0);
		
		if(!strcmp(cmi.pszName,Translate("<unknown>")))
		{	
			if (IsWatchedProtocol(szProto))
				cmi.flags|=CMIF_GRAYED;
			else
				cmi.flags|=CMIF_HIDDEN;	
		} 
		else if(DBGetContactSettingByte(NULL,S_MOD,"ShowIcon",1))
		{
			isetting=DBGetContactSettingWord((HANDLE)hContact,S_MOD,"StatusTriger",-1);
			cmi.hIcon=LoadSkinnedProtoIcon(szProto,isetting|0x8000);
			
		}
	}

	CallService(MS_CLIST_MODIFYMENUITEM,(WPARAM)hmenuitem,(LPARAM)&cmi);
	DBFreeVariant(&dbv);


	return 0;
}
コード例 #22
0
int LoadContactsModule(void) {
	{
		// Load the name order
		BYTE i;
		DBVARIANT dbv;

		for(i=0; i<NAMEORDERCOUNT; i++)
			nameOrder[i]=i;

		if(!DBGetContactSetting(NULL,"Contact","NameOrder",&dbv))
		{
			CopyMemory(nameOrder,dbv.pbVal,dbv.cpbVal);
			DBFreeVariant(&dbv);
		}
	}
	CreateServiceFunction(MS_CONTACT_GETCONTACTINFO,GetContactInfo);
	HookEvent(ME_OPT_INITIALISE,ContactOptInit);
	return 0;
}
コード例 #23
0
ファイル: sametime.cpp プロジェクト: MrtsComputers/miranda-ng
void DeleteAllContacts() {
	char *proto;
	DBVARIANT dbv;
	HANDLE hContact = ( HANDLE )CallService( MS_DB_CONTACT_FINDFIRST, 0, 0 ), hContactNext;
	while ( hContact != NULL )
	{
		hContactNext = ( HANDLE )CallService( MS_DB_CONTACT_FINDNEXT,( WPARAM )hContact, 0 );
		
		if(!DBGetContactSetting(hContact, "Protocol", "p", &dbv)) {
			//proto = ( char* )CallService( MS_PROTO_GETCONTACTBASEPROTO, ( WPARAM )hContact,0 );
			proto = dbv.pszVal;
			if ( proto && !strcmp( PROTO, proto)) {
				CallService(MS_DB_CONTACT_DELETE, (WPARAM)hContact, 0);
			}
			DBFreeVariant(&dbv);
		}

		hContact = hContactNext;
	}	
}
コード例 #24
0
ファイル: tlen_muc.c プロジェクト: BackupTheBerlios/mtlen-svn
int TlenMUCContactMenuHandleMUC(WPARAM wParam, LPARAM lParam)
{
	HANDLE hContact;
	DBVARIANT dbv;
	JABBER_LIST_ITEM *item;
	if (!jabberOnline) {
		return 1;
	}
	if ((hContact=(HANDLE) wParam)!=NULL && jabberOnline) {
		if (!DBGetContactSetting(hContact, jabberProtoName, "jid", &dbv)) {
			char serialId[32];
			sprintf(serialId, JABBER_IQID"%d", JabberSerialNext());
			item = JabberListAdd(LIST_INVITATIONS, serialId);
			item->nick = mir_strdup(dbv.pszVal);
			JabberSend(jabberThreadInfo->s, "<p to='c' tp='c' id='%s'/>", serialId);
			DBFreeVariant(&dbv);
		}
	}
	return 0;
}
コード例 #25
0
void LoadContactTree(void)
{
    HANDLE hContact;
    int i, status, hideOffline;
    BOOL mc_disablehgh = ServiceExists(MS_MC_DISABLEHIDDENGROUP);
    DBVARIANT dbv = {0};
    BYTE      bMsgFrequency = cfg::getByte("CList", "fhistdata", 0);

    CallService(MS_CLUI_LISTBEGINREBUILD, 0, 0);
    for (i = 1; ; i++) {
        if (pcli->pfnGetGroupName(i, NULL) == NULL)
            break;
        CallService(MS_CLUI_GROUPADDED, i, 0);
    }

    hideOffline = cfg::getByte("CList", "HideOffline", SETTING_HIDEOFFLINE_DEFAULT);
    hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDFIRST, 0, 0);
    while (hContact != NULL) {
        status = GetContactStatus(hContact);
        if ((!hideOffline || status != ID_STATUS_OFFLINE) && !CLVM_GetContactHiddenStatus(hContact, NULL, NULL))
            pcli->pfnChangeContactIcon(hContact, IconFromStatusMode((char*) CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM) hContact, 0), status, hContact, NULL), 1);

        if(mc_disablehgh && !mc_hgh_removed) {
            if(!DBGetContactSetting(hContact, "CList", "Group", &dbv)) {
                if(!strcmp(dbv.pszVal, "MetaContacts Hidden Group"))
                    DBDeleteContactSetting(hContact, "CList", "Group");
                mir_free(dbv.pszVal);
            }
        }

        // build initial data for message frequency
        if(!bMsgFrequency)
            MF_CalcFrequency(hContact, 100, 0);

        hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM) hContact, 0);
    }
    cfg::writeByte("CList", "fhistdata", 1);
    mc_hgh_removed = TRUE;
    CallService(MS_CLUI_SORTLIST, 0, 0);
    CallService(MS_CLUI_LISTENDREBUILD, 0, 0);
}
コード例 #26
0
ファイル: tlen_muc.c プロジェクト: BackupTheBerlios/mtlen-svn
static int isSelf(const char *roomID, const char *nick) 
{
	JABBER_LIST_ITEM *item;
	int result;
	DBVARIANT dbv;
	result=0;
	item = JabberListGetItemPtr(LIST_CHATROOM, roomID);
	if (item!=NULL) {
		if (item->nick==NULL) {
			if (!DBGetContactSetting(NULL, jabberProtoName, "LoginName", &dbv)) {
				if (!strcmp(nick, dbv.pszVal)) result = 1;
				DBFreeVariant(&dbv);
			}
		} else if (nick[0]=='~') {
			if (!strcmp(nick+1, item->nick)) {
				result = 1;
			}
		}
	}
	return result;
}
コード例 #27
0
ファイル: crypt_dll.cpp プロジェクト: aventado/secureimplugin
BOOL LoadKeyPGP(pUinKey ptr) {
   	int mode = DBGetContactSettingByte(ptr->hContact,szModuleName,"pgp_mode",255);
   	if(mode==0) {
   		DBVARIANT dbv;
   		DBGetContactSetting(ptr->hContact,szModuleName,"pgp",&dbv);
		BOOL r=(dbv.type==DBVT_BLOB);
		if(r) pgp_set_keyid(ptr->cntx,(PVOID)dbv.pbVal);
		DBFreeVariant(&dbv);
		return r;
   	}
   	else
   	if(mode==1) {
   		LPSTR key = myDBGetStringDecode(ptr->hContact,szModuleName,"pgp");
		if( key ) {
   			pgp_set_key(ptr->cntx,key);
   			mir_free(key);
	   		return 1;
   		}
   	}
	return 0;
}
コード例 #28
0
ファイル: file.c プロジェクト: BackupTheBerlios/mgoodies-svn
/*
Prepares the log file:
- calculates the absolute path (and store it in the db)
- creates the directory

*/
int InitFileOutput(void)
{
	char szfpath[256]="",szmpath[256]="",*str;
	DBVARIANT dbv;

	GetModuleFileName(NULL,szmpath,MAX_PATH);
	strcpy(szfpath,!DBGetContactSetting(NULL,S_MOD,"FileName",&dbv)?dbv.pszVal:DEFAULT_FILENAME);

	DBFreeVariant(&dbv);

	if(szfpath[0]=='\\')
		strcpy(szfpath,szfpath+1);

	str=strrchr(szmpath,'\\');
	if(str!=NULL)
		*++str=0;

	strcat(szmpath,szfpath);
	
	strcpy(szfpath,szmpath);

	str=strrchr(szmpath,'\\');
	if(str!=NULL)
		*++str=0;
/*
//we dont need this anylonger. the directory is created in filewrite 
	if(!CreateDirectory(szmpath,NULL))
	{
		if(!(GetFileAttributes(szmpath) & FILE_ATTRIBUTE_DIRECTORY))
		{		
			MessageBox(NULL,"Directory could not be created\nPlease choose another!","Last seen plugin",MB_OK|MB_ICONERROR);
			DBWriteContactSettingByte(NULL,S_MOD,"FileOutput",0);
			return 0;
		}
	}
*/
	DBWriteContactSettingString(NULL,S_MOD,"PathToFile",szfpath);

	return 0;
}
コード例 #29
0
char *TemplateHTMLBuilder::getAvatar(HANDLE hContact, const char * szProto) {
	DBVARIANT dbv;
	char tmpPath[MAX_PATH];
	char *result = NULL;

	if (Options::getAvatarServiceFlags() == Options::AVATARSERVICE_PRESENT) {
		struct avatarCacheEntry *ace  = NULL;
		if (hContact == NULL) {
			ace = (struct avatarCacheEntry *)CallService(MS_AV_GETMYAVATAR, (WPARAM)0, (LPARAM)szProto);
		} else {
			ace = (struct avatarCacheEntry *)CallService(MS_AV_GETAVATARBITMAP, (WPARAM)hContact, (LPARAM)0);
		}
		if (ace!=NULL) {
			result = ace->szFilename;
		}
	}
	if (!DBGetContactSetting(hContact, "ContactPhoto", "File",&dbv)) {
		if (strlen(dbv.pszVal) > 0) {
			char* ext = strrchr(dbv.pszVal, '.');
			if (ext && strcmpi(ext, ".xml") == 0) {
				result = (char *)getFlashAvatar(dbv.pszVal, (hContact == NULL) ? 1 : 0);
			} else {
				if (result == NULL) {
					/* relative -> absolute */
					strcpy (tmpPath, dbv.pszVal);
					if (ServiceExists(MS_UTILS_PATHTOABSOLUTE)&& strncmp(tmpPath, "http://", 7)) {
						CallService(MS_UTILS_PATHTOABSOLUTE, (WPARAM)dbv.pszVal, (LPARAM)tmpPath);
					}
					result = tmpPath;
				}
			}
		}
		DBFreeVariant(&dbv);
	}
	result = Utils::UTF8Encode(result);
	Utils::convertPath(result);
	return result;
}
コード例 #30
0
void LoadMsgDlgFont(int i, LOGFONTA * lf, COLORREF * colour)
{
	char str[32];
	int style;
	DBVARIANT dbv;

	if (colour) {
		wsprintfA(str, "SRMFont%dCol", i);
		*colour = DBGetContactSettingDword(NULL, SRMMMOD, str, fontOptionsList[i].defColour);
	}
	if (lf) {
		wsprintfA(str, "SRMFont%dSize", i);
		lf->lfHeight = (char) DBGetContactSettingByte(NULL, SRMMMOD, str, fontOptionsList[i].defSize);
		lf->lfWidth = 0;
		lf->lfEscapement = 0;
		lf->lfOrientation = 0;
		wsprintfA(str, "SRMFont%dSty", i);
		style = DBGetContactSettingByte(NULL, SRMMMOD, str, fontOptionsList[i].defStyle);
		lf->lfWeight = style & FONTF_BOLD ? FW_BOLD : FW_NORMAL;
		lf->lfItalic = style & FONTF_ITALIC ? 1 : 0;
		lf->lfUnderline = 0;
		lf->lfStrikeOut = 0;
		wsprintfA(str, "SRMFont%dSet", i);
		lf->lfCharSet = DBGetContactSettingByte(NULL, SRMMMOD, str, fontOptionsList[i].defCharset);
		lf->lfOutPrecision = OUT_DEFAULT_PRECIS;
		lf->lfClipPrecision = CLIP_DEFAULT_PRECIS;
		lf->lfQuality = DEFAULT_QUALITY;
		lf->lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
		wsprintfA(str, "SRMFont%d", i);
		if (DBGetContactSetting(NULL, SRMMMOD, str, &dbv))
			lstrcpyA(lf->lfFaceName, fontOptionsList[i].szDefFace);
		else {
			lstrcpynA(lf->lfFaceName, dbv.pszVal, sizeof(lf->lfFaceName));
			DBFreeVariant(&dbv);
		}
	}
}