Example #1
0
HANDLE metaGetContact(HANDLE hContact) 
{
    if(bMetaContacts)
		if(metaIsSubcontact(hContact))
			return (HANDLE)CallService(MS_MC_GETMETACONTACT,(WPARAM)hContact,0);
    return hContact;
}
Example #2
0
int __cdecl onIconPressed(WPARAM wParam, LPARAM lParam) {
	HANDLE hContact = (HANDLE)wParam;
	HANDLE hMeta = NULL;
	if(metaIsProtoMetaContacts(hContact))
	{
		hMeta = hContact;
		hContact = metaGetMostOnline(hContact); // возьмем тот, через который пойдет сообщение
	}
	else if(metaIsSubcontact(hContact))
		hMeta = metaGetContact(hContact);
	StatusIconClickData *sicd = (StatusIconClickData *)lParam;
	if(strcmp(sicd->szModule, szGPGModuleName)) 
		return 0; // not our event
	
	void setSrmmIcon(HANDLE);
	void setClistIcon(HANDLE);
	bool isContactHaveKey(HANDLE hContact);
	BYTE enc = db_get_b(hContact, szGPGModuleName, "GPGEncryption", 0);
	if(enc)
	{
		db_set_b(hContact, szGPGModuleName, "GPGEncryption", 0);
		hMeta?db_set_b(hMeta, szGPGModuleName, "GPGEncryption", 0):0;
		setSrmmIcon(hContact);
		setClistIcon(hContact);
	}
	else if(!enc)
	{
		if(!isContactHaveKey(hContact))
		{
			void ShowLoadPublicKeyDialog();
			extern map<int, HANDLE> user_data;
			extern int item_num;
			item_num = 0;		 //black magic here
			user_data[1] = hContact;
			ShowLoadPublicKeyDialog();
		}
		else
		{
			db_set_b(hContact, szGPGModuleName, "GPGEncryption", 1);
			hMeta?db_set_b(hMeta, szGPGModuleName, "GPGEncryption", 1):0;
			setSrmmIcon(hContact);
			setClistIcon(hContact);
			return 0;
		}
		if(isContactHaveKey(hContact))
		{
			db_set_b(hContact, szGPGModuleName, "GPGEncryption", 1);
			hMeta?db_set_b(hMeta, szGPGModuleName, "GPGEncryption", 1):0;
			setSrmmIcon(hContact);
			setClistIcon(hContact);
		}
	}
	return 0;
}