#include "common.h" #include "import.h" #include "core_functions.h" #include "proto.h" void ImportOldMetas() { HANDLE hContact = (HANDLE)CallService( MS_DB_CONTACT_FINDFIRST, 0, 0); char *proto; HANDLE hMeta; while(hContact != NULL) { DWORD id = DBGetContactSettingDword(hContact, "MetaContacts", "MetaLink", (DWORD)-1); if(id != (DWORD)-1) { if(id > next_meta_id) next_meta_id = id + 1; hMeta = GetMetaHandle(id); if(hMeta) { Meta_Assign(hContact, hMeta); } else { hMeta = NewMetaContact(); DBWriteContactSettingDword(hMeta, MODULE, META_ID, id); DBWriteContactSettingByte(hMeta, MODULE, "Default", 0); Meta_Assign(hContact, hMeta); DBVARIANT dbv; if(!DBGetContactSettingUTF8String(hContact, "CList", "Group", &dbv)) { DBWriteContactSettingUTF8String(hMeta, "CList", "Group", dbv.pszVal); DBFreeVariant(&dbv); } if(!DBGetContactSettingUTF8String(hContact, "CList", "MyHandle", &dbv)) { DBWriteContactSettingUTF8String(hMeta, "CList", "MyHandle", dbv.pszVal); DBFreeVariant(&dbv); } char *subProto = ContactProto(hContact); if(subProto) { if(!DBGetContactSettingUTF8String(hContact, subProto, "Nick", &dbv)) { DBWriteContactSettingUTF8String(hMeta, MODULE, "Nick", dbv.pszVal); DBFreeVariant(&dbv); } } } } hContact = ( HANDLE )CallService( MS_DB_CONTACT_FINDNEXT,( WPARAM )hContact, 0 ); } }