Esempio n. 1
0
CMraProto::CMraProto(const char* _module, const TCHAR* _displayName) :
	PROTO<CMraProto>(_module, _displayName),
	m_bLoggedIn(false),
	m_groups(5, NumericKeySortT)
{
	InitializeCriticalSectionAndSpinCount(&csCriticalSectionSend, 0);
	MraSendQueueInitialize(0, &hSendQueueHandle);
	MraFilesQueueInitialize(0, &hFilesQueueHandle);
	MraMPopSessionQueueInitialize(&hMPopSessionQueue);
	MraAvatarsQueueInitialize(&hAvatarsQueueHandle);

	CreateProtoService(PS_SETCUSTOMSTATUSEX,   &CMraProto::MraSetXStatusEx);
	CreateProtoService(PS_GETCUSTOMSTATUSEX,   &CMraProto::MraGetXStatusEx);
	CreateProtoService(PS_GETCUSTOMSTATUSICON, &CMraProto::MraGetXStatusIcon);

	CreateProtoService(PS_SET_LISTENINGTO,     &CMraProto::MraSetListeningTo);

	CreateProtoService(PS_CREATEACCMGRUI,      &CMraProto::MraCreateAccMgrUI);
	CreateProtoService(PS_GETAVATARCAPS,       &CMraProto::MraGetAvatarCaps);
	CreateProtoService(PS_GETAVATARINFOT,      &CMraProto::MraGetAvatarInfo);
	CreateProtoService(PS_GETMYAVATART,        &CMraProto::MraGetMyAvatar);

	CreateProtoService(MS_ICQ_SENDSMS,         &CMraProto::MraSendSMS);
	CreateProtoService(PS_SEND_NUDGE,          &CMraProto::MraSendNudge);

	if ( ServiceExists(MS_NUDGE_SEND))
		m_heNudgeReceived = CreateProtoEvent(PE_NUDGE);

	TCHAR name[128];
	mir_sntprintf( name, SIZEOF(name), TranslateT("%s connection"), m_tszUserName);

	NETLIBUSER nlu = { sizeof(nlu) };
	nlu.flags = NUF_INCOMING | NUF_OUTGOING | NUF_HTTPCONNS | NUF_UNICODE;
	nlu.szSettingsModule = m_szModuleName;
	nlu.ptszDescriptiveName = name;
	m_hNetlibUser = (HANDLE)CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nlu);

	HookProtoEvent(ME_SYSTEM_PRESHUTDOWN, &CMraProto::OnPreShutdown);

	InitMenus();

	mir_snprintf(szNewMailSound, SIZEOF(szNewMailSound), "%s: %s", m_szModuleName, MRA_SOUND_NEW_EMAIL);
	SkinAddNewSoundEx(szNewMailSound, m_szModuleName, MRA_SOUND_NEW_EMAIL);

	HookProtoEvent(ME_CLIST_PREBUILDSTATUSMENU, &CMraProto::MraRebuildStatusMenu);

	hExtraXstatusIcon = ExtraIcon_Register("MRAXstatus", LPGEN("Mail.ru Xstatus"), "mra_xstatus25");
	hExtraInfo = ExtraIcon_Register("MRAStatus", LPGEN("Mail.ru extra info"), "mra_xstatus49");

	bHideXStatusUI = FALSE;
	m_iXStatus = getByte(DBSETTING_XSTATUSID, MRA_MIR_XSTATUS_NONE);
	if ( !IsXStatusValid(m_iXStatus))
		m_iXStatus = MRA_MIR_XSTATUS_NONE;
}
Esempio n. 2
0
CMraProto::CMraProto(const char* _module, const TCHAR* _displayName) :
    PROTO<CMraProto>(_module, _displayName),
    m_bLoggedIn(false),
    m_groups(5, NumericKeySortT)
{
    MraSendQueueInitialize(0, &hSendQueueHandle);
    MraFilesQueueInitialize(0, &hFilesQueueHandle);
    MraMPopSessionQueueInitialize(&hMPopSessionQueue);//getByte("AutoAuthOnWebServices", MRA_DEFAULT_AUTO_AUTH_ON_WEB_SVCS)
    MraAvatarsQueueInitialize(&hAvatarsQueueHandle);

    CreateProtoService(PS_SETCUSTOMSTATUSEX, &CMraProto::MraSetXStatusEx);
    CreateProtoService(PS_GETCUSTOMSTATUSEX, &CMraProto::MraGetXStatusEx);
    CreateProtoService(PS_GETCUSTOMSTATUSICON, &CMraProto::MraGetXStatusIcon);

    CreateProtoService(PS_SET_LISTENINGTO, &CMraProto::MraSetListeningTo);

    CreateProtoService(PS_CREATEACCMGRUI, &CMraProto::MraCreateAccMgrUI);
    CreateProtoService(PS_GETAVATARCAPS, &CMraProto::MraGetAvatarCaps);
    CreateProtoService(PS_GETAVATARINFO, &CMraProto::MraGetAvatarInfo);
    CreateProtoService(PS_GETMYAVATAR, &CMraProto::MraGetMyAvatar);

    CreateProtoService(MS_ICQ_SENDSMS, &CMraProto::MraSendSMS);
    CreateProtoService(PS_SEND_NUDGE, &CMraProto::MraSendNudge);
    CreateProtoService(PS_GETUNREADEMAILCOUNT, &CMraProto::GetUnreadEmailCount);

    if (ServiceExists(MS_NUDGE_SEND))
        m_heNudgeReceived = CreateProtoEvent(PE_NUDGE);

    TCHAR name[MAX_PATH];
    mir_sntprintf(name, _countof(name), TranslateT("%s connection"), m_tszUserName);

    NETLIBUSER nlu = { sizeof(nlu) };
    nlu.flags = NUF_INCOMING | NUF_OUTGOING | NUF_HTTPCONNS | NUF_TCHAR;
    nlu.szSettingsModule = m_szModuleName;
    nlu.ptszDescriptiveName = name;
    m_hNetlibUser = (HANDLE)CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nlu);

    InitMenus();

    mir_snprintf(szNewMailSound, _countof(szNewMailSound), "%s_new_email", m_szModuleName);
    SkinAddNewSoundEx(szNewMailSound, m_szModuleName, MRA_SOUND_NEW_EMAIL);

    HookProtoEvent(ME_CLIST_PREBUILDSTATUSMENU, &CMraProto::MraRebuildStatusMenu);

    hExtraXstatusIcon = ExtraIcon_Register("MRAXstatus", LPGEN("Mail.ru xStatus"), "mra_xstatus25");
    hExtraInfo = ExtraIcon_Register("MRAStatus", LPGEN("Mail.ru extra info"), MRA_XSTATUS_UNKNOWN_STR);

    m_bHideXStatusUI = false;
    m_iXStatus = getByte(DBSETTING_XSTATUSID, MRA_MIR_XSTATUS_NONE);
    if (!IsXStatusValid(m_iXStatus))
        m_iXStatus = MRA_MIR_XSTATUS_NONE;
}