From 2b82b6fe83df09a31a60288871227b3ea97d39a5 Mon Sep 17 00:00:00 2001 From: Alexander Lantsev Date: Fri, 3 Apr 2015 21:57:47 +0000 Subject: SkypeWeb: cleanup git-svn-id: http://svn.miranda-ng.org/main/trunk@12597 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/SkypeWeb/src/skype_messages.cpp | 32 ++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'protocols/SkypeWeb/src/skype_messages.cpp') diff --git a/protocols/SkypeWeb/src/skype_messages.cpp b/protocols/SkypeWeb/src/skype_messages.cpp index 869d7e75d5..70436ce0e7 100644 --- a/protocols/SkypeWeb/src/skype_messages.cpp +++ b/protocols/SkypeWeb/src/skype_messages.cpp @@ -25,7 +25,37 @@ int CSkypeProto::OnReceiveMessage(const char *from, const char *convLink, time_t // outcoming message flow int CSkypeProto::OnSendMessage(MCONTACT hContact, int flags, const char *szMessage) { - return 0; + UINT hMessage = InterlockedIncrement(&hMessageProcess); + + SendMessageParam *param = (SendMessageParam*)mir_calloc(sizeof(SendMessageParam)); + param->hContact = hContact; + param->hMessage = (HANDLE)hMessage; + param->msg = szMessage; + param->flags = flags; + + ForkThread(&CSkypeProto::SendMsgThread, (void*)param); + + return hMessage; +} + +void CSkypeProto::SendMsgThread(void *arg) +{ + SendMessageParam *param = (SendMessageParam*)arg; + + if (!IsOnline()) + { + ProtoBroadcastAck(param->hContact, ACKTYPE_MESSAGE, ACKRESULT_FAILED, param->hMessage, (LPARAM)Translate("You cannot send messages when you are offline.")); + mir_free(param); + return; + } + + CMStringA message = (param->flags & PREF_UNICODE) ? ptrA(mir_utf8encode(param->msg)) : param->msg; // TODO: mir_utf8encode check taken from FacebookRM, is it needed? Usually we get PREF_UTF8 flag instead. + + ptrA token(getStringA("registrationToken")); + ptrA username(getStringA(param->hContact, "Skypename")); + PushRequest( + new SendMsgRequest(token, username, message, getStringA("Server"))/*, + &CSkypeProto::OnMessageSent*/); } void CSkypeProto::OnMessageSent(const NETLIBHTTPREQUEST *response, void *arg) -- cgit v1.2.3