look here:
http://forums.miranda-im.org/showthread.php?t=976//all offsets are relative to the start of the file
//offsets are 0 if there is nothing in the chain or this is the last in the
//chain
/* tree diagram
DBHeader
|-->end of file (plain offset)
|-->first contact (DBContact)
| |-->next contact (DBContact)
| | \--> ...
| |-->first settings (DBContactSettings)
| | |-->next settings (DBContactSettings)
| | | \--> ...
| | \-->module name (DBModuleName)
| \-->first/last/firstunread event
|-->user contact (DBContact)
| |-->next contact=NULL
| |-->first settings as above
| \-->first/last/firstunread event as above
\-->first module name (DBModuleName)
\-->next module name (DBModuleName)
\--> ...
*/
maybe also this can help:
miranda\plugins\db3x\encrypt.c
void Encrypt(char*msg,BOOL up)
{
int i;
int jump;
if (up)
{
jump=5;
}
else
{
jump=-5;
}
for (i=0;msg[i];i++)
{
msg[i]=msg[i]+jump;
}
}
static int EncodeString(WPARAM wParam,LPARAM lParam)
{
Encrypt((char*)lParam,TRUE);
return 0;
}
static int DecodeString(WPARAM wParam,LPARAM lParam)
{
Encrypt((char*)lParam,FALSE);
return 0;
}