diff options
Diffstat (limited to 'protocols/ICQ-WIM/src')
-rw-r--r-- | protocols/ICQ-WIM/src/groupchats.cpp | 15 | ||||
-rw-r--r-- | protocols/ICQ-WIM/src/proto.cpp | 14 | ||||
-rw-r--r-- | protocols/ICQ-WIM/src/proto.h | 11 |
3 files changed, 23 insertions, 17 deletions
diff --git a/protocols/ICQ-WIM/src/groupchats.cpp b/protocols/ICQ-WIM/src/groupchats.cpp index aef323b1c9..42aea886a8 100644 --- a/protocols/ICQ-WIM/src/groupchats.cpp +++ b/protocols/ICQ-WIM/src/groupchats.cpp @@ -36,7 +36,7 @@ SESSION_INFO* CIcqProto::CreateGroupChat(const wchar_t *pwszId, const wchar_t *p return si;
}
-INT_PTR CIcqProto::OnLeaveChat(WPARAM hContact, LPARAM)
+INT_PTR CIcqProto::SvcLeaveChat(WPARAM hContact, LPARAM)
{
CMStringW wszId(GetUserId(hContact));
if (auto *si = Chat_Find(wszId, m_szModuleName))
@@ -192,12 +192,17 @@ void CIcqProto::InviteUserToChat(SESSION_INFO *si) dlg.DoModal();
}
-void CIcqProto::LeaveDestroyChat(SESSION_INFO *si)
+void CIcqProto::OnLeaveChat(NETLIBHTTPREQUEST*, AsyncHttpRequest *pReq)
{
- Push(new AsyncHttpRequest(CONN_MAIN, REQUEST_GET, "/buddylist/hideChat")
- << AIMSID(this) << WCHAR_PARAM("buddy", si->ptszID) << INT64_PARAM("lastMsgId", getId(si->hContact, DB_KEY_LASTMSGID)));
+ db_delete_contact(INT_PTR(pReq->pUserInfo));
+}
- db_delete_contact(si->hContact);
+void CIcqProto::LeaveDestroyChat(SESSION_INFO *si)
+{
+ auto *pReq = new AsyncHttpRequest(CONN_MAIN, REQUEST_GET, "/buddylist/hideChat", &CIcqProto::OnLeaveChat)
+ << AIMSID(this) << WCHAR_PARAM("buddy", si->ptszID) << INT64_PARAM("lastMsgId", getId(si->hContact, DB_KEY_LASTMSGID));
+ pReq->pUserInfo = (void *)si->hContact;
+ Push(pReq);
}
/////////////////////////////////////////////////////////////////////////////////////////
diff --git a/protocols/ICQ-WIM/src/proto.cpp b/protocols/ICQ-WIM/src/proto.cpp index 15fc7310cb..ccda5e0c98 100644 --- a/protocols/ICQ-WIM/src/proto.cpp +++ b/protocols/ICQ-WIM/src/proto.cpp @@ -70,9 +70,9 @@ CIcqProto::CIcqProto(const char *aProtoName, const wchar_t *aUserName) : CreateProtoService(PS_GETMYAVATAR, &CIcqProto::GetAvatar);
CreateProtoService(PS_SETMYAVATAR, &CIcqProto::SetAvatar);
- CreateProtoService(PS_MENU_LOADHISTORY, &CIcqProto::OnMenuLoadHistory);
- CreateProtoService(PS_GETUNREADEMAILCOUNT, &CIcqProto::GetEmailCount);
- CreateProtoService(PS_GOTO_INBOX, &CIcqProto::GotoInbox);
+ CreateProtoService(PS_MENU_LOADHISTORY, &CIcqProto::SvcLoadHistory);
+ CreateProtoService(PS_GETUNREADEMAILCOUNT, &CIcqProto::SvcGetEmailCount);
+ CreateProtoService(PS_GOTO_INBOX, &CIcqProto::SvcGotoInbox);
// cloud file transfer
CreateProtoService(PS_OFFLINEFILE, &CIcqProto::SvcOfflineFile);
@@ -90,7 +90,7 @@ CIcqProto::CIcqProto(const char *aProtoName, const wchar_t *aUserName) : gcr.pszModule = m_szModuleName;
Chat_Register(&gcr);
- CreateProtoService(PS_LEAVECHAT, &CIcqProto::OnLeaveChat);
+ CreateProtoService(PS_LEAVECHAT, &CIcqProto::SvcLeaveChat);
// avatars
CreateDirectoryTreeW(GetAvatarPath());
@@ -267,7 +267,7 @@ INT_PTR __cdecl CIcqProto::SvcOfflineFile(WPARAM param, LPARAM) /////////////////////////////////////////////////////////////////////////////////////////
-INT_PTR CIcqProto::OnMenuLoadHistory(WPARAM hContact, LPARAM)
+INT_PTR CIcqProto::SvcLoadHistory(WPARAM hContact, LPARAM)
{
delSetting(hContact, DB_KEY_LASTMSGID);
@@ -321,14 +321,14 @@ INT_PTR CIcqProto::EditProfile(WPARAM, LPARAM) /////////////////////////////////////////////////////////////////////////////////////////
-INT_PTR CIcqProto::GetEmailCount(WPARAM, LPARAM)
+INT_PTR CIcqProto::SvcGetEmailCount(WPARAM, LPARAM)
{
if (!m_bOnline)
return 0;
return m_unreadEmails;
}
-INT_PTR CIcqProto::GotoInbox(WPARAM, LPARAM)
+INT_PTR CIcqProto::SvcGotoInbox(WPARAM, LPARAM)
{
Utils_OpenUrl("https://e.mail.ru/messages/inbox");
return 0;
diff --git a/protocols/ICQ-WIM/src/proto.h b/protocols/ICQ-WIM/src/proto.h index d44478774e..37e1b48357 100644 --- a/protocols/ICQ-WIM/src/proto.h +++ b/protocols/ICQ-WIM/src/proto.h @@ -40,7 +40,7 @@ #define ICQ_ROBUST_SERVER "https://u.icq.net/rapi"
#define PS_DUMMY "/DoNothing"
-#define PS_GOTO_INBOX "/GotoInbox"
+#define PS_GOTO_INBOX "/SvcGotoInbox"
#define WIM_CAP_VOIP_VOICE "094613504c7f11d18222444553540000"
#define WIM_CAP_VOIP_VIDEO "094613514c7f11d18222444553540000"
@@ -271,6 +271,7 @@ class CIcqProto : public PROTO<CIcqProto> void OnGetUserHistory(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest *pReq);
void OnGetUserInfo(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest *pReq);
void OnLastSeen(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest *pReq);
+ void OnLeaveChat(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest *pReq);
void OnLoginViaPhone(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest *pReq);
void OnNormalizePhone(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest *pReq);
void OnReceiveAvatar(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest *pReq);
@@ -385,16 +386,16 @@ class CIcqProto : public PROTO<CIcqProto> INT_PTR __cdecl GetAvatarInfo(WPARAM, LPARAM);
INT_PTR __cdecl SetAvatar(WPARAM, LPARAM);
+ INT_PTR __cdecl SvcLeaveChat(WPARAM, LPARAM);
INT_PTR __cdecl SvcOfflineFile(WPARAM, LPARAM);
INT_PTR __cdecl EditGroups(WPARAM, LPARAM);
INT_PTR __cdecl EditProfile(WPARAM, LPARAM);
- INT_PTR __cdecl GetEmailCount(WPARAM, LPARAM);
- INT_PTR __cdecl GotoInbox(WPARAM, LPARAM);
+ INT_PTR __cdecl SvcGetEmailCount(WPARAM, LPARAM);
+ INT_PTR __cdecl SvcGotoInbox(WPARAM, LPARAM);
INT_PTR __cdecl UploadGroups(WPARAM, LPARAM);
- INT_PTR __cdecl OnLeaveChat(WPARAM, LPARAM);
- INT_PTR __cdecl OnMenuLoadHistory(WPARAM, LPARAM);
+ INT_PTR __cdecl SvcLoadHistory(WPARAM, LPARAM);
////////////////////////////////////////////////////////////////////////////////////////
// events
|