/*

MAgen.dll: Miranda plugin for mail.ru message exchange.

Copyright 2005-2010 Lenik.
Project home at http://www.lenik.ru/win32/magent
Author contact: lenik@lenik.ru

This program is free software.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

*/

unsigned long MRIM_do_typingnotification(unsigned char *address)
{
unsigned long seq;
static struct
    {
    mrim_packet_header_t hdr;
    unsigned char parameters[100];
    }packet;

packet.hdr.magic = CS_MAGIC;
packet.hdr.proto = PROTO_VERSION;
packet.hdr.seq = seq = GetSequenceNext();
packet.hdr.msg = MRIM_CS_MESSAGE;
packet.hdr.dlen = 0;
packet.hdr.from = 0;
packet.hdr.fromport = 0;

MRIM_Packet_AddLong(&packet,MESSAGE_FLAG_NOTIFY|MESSAGE_FLAG_NORECV);//flags   
MRIM_Packet_AddString(&packet,address);
MRIM_Packet_AddString(&packet," ");
MRIM_Packet_AddString(&packet," ");

if(MRIM_sendpacket(&packet) == 0)
    {
    return(0);
    }
return(1);
}

int MRIM_UserIsTyping(WPARAM wParam, LPARAM lParam)
{
HANDLE hContact = (HANDLE)wParam;
DBVARIANT dbv;
DBCONTACTGETSETTING cgs;

if(hContact != NULL)
    {
    cgs.szModule = ProtoName;
    cgs.szSetting = DB_SETTING_EMAIL;
    cgs.pValue = &dbv;
    if(CallService(MS_DB_CONTACT_GETSETTING,(WPARAM)hContact,(LPARAM)&cgs) == 0)
        {
        switch (lParam)
            {
            case PROTOTYPE_SELFTYPING_ON:
                //MessageBox(NULL,"Typing notification. Start.",dbv.pszVal,MB_OK);
                MRIM_do_typingnotification(dbv.pszVal);
                break;
            case PROTOTYPE_SELFTYPING_OFF:
                //sendTypingNotification(hContact,MTN_FINISHED);
                break;
            default:
                break;
            }
        DBFreeVariant(&dbv);
        }
    }
return(0);
}
