summaryrefslogtreecommitdiff
path: root/protocols/Skype/src/skype_utils.cpp
diff options
context:
space:
mode:
authorAlexander Lantsev <aunsane@gmail.com>2013-06-24 09:23:01 +0000
committerAlexander Lantsev <aunsane@gmail.com>2013-06-24 09:23:01 +0000
commit04c18aa4ab21f78ddd29fcbdc18afba148f96135 (patch)
tree7ef41d868f285bc2603b264c420bb6572d51041e /protocols/Skype/src/skype_utils.cpp
parent90619452ae4429a71a3034cb3db72adc275487bf (diff)
Skype:
- updated icons - added server side ignore list - removed bookmsrks git-svn-id: http://svn.miranda-ng.org/main/trunk@5110 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/Skype/src/skype_utils.cpp')
-rw-r--r--protocols/Skype/src/skype_utils.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/protocols/Skype/src/skype_utils.cpp b/protocols/Skype/src/skype_utils.cpp
index 2c354210cb..eb5eb1e4f1 100644
--- a/protocols/Skype/src/skype_utils.cpp
+++ b/protocols/Skype/src/skype_utils.cpp
@@ -539,4 +539,70 @@ void CSkypeProto::ReplaceSpecialChars(wchar_t *text, wchar_t replaceWith)
for (size_t i = 0; i < ::wcslen(text); i++)
if (::wcschr(special, text[i]) != NULL)
text[i] = replaceWith;
+}
+
+INT_PTR CSkypeProto::ParseSkypeUri(WPARAM wParam, LPARAM lParam)
+{
+ return 1;
+ if (CSkypeProto::instanceList.getCount() == 0 || !CSkypeProto::instanceList[0]->IsOnline())
+ return 1;
+
+ CSkypeProto::ShowNotification((wchar_t *)lParam);
+
+ CSkypeProto *ppro = CSkypeProto::instanceList[0];
+
+ wchar_t *args = ::mir_wstrdup((wchar_t *)lParam);
+ if (args == NULL)
+ return 1;
+ // set focus on clist
+
+ wchar_t * q = ::wcschr(args, L'?');
+ if (q == NULL)
+ return 1;
+
+ wchar_t *c = q + 1; q = 0;
+ StringList participants = StringList(args, L";");
+ StringList commands = StringList(q + 1, L"&");
+
+ ptrW command, arg, commandAndParam;
+
+ if (::lstrcmpiW( commands[0], L"chat") != 0)
+ {
+ wchar_t message[1024];
+ ::mir_sntprintf(message, SIZEOF(message), ::TranslateT("Command\"%s\" is unsupported"), args);
+ CSkypeProto::ShowNotification(message);
+ return 1;
+ }
+
+ ChatRoomParam *param = new ChatRoomParam(NULL, participants, ppro);
+
+ for (size_t i = 1; i < commands.size(); i++)
+ {
+ commandAndParam = command = ::mir_wstrdup(commands[i]);
+ wchar_t * p = ::wcschr(commandAndParam, L'=');
+ if (p != NULL)
+ {
+ arg = p + 1;
+ p = 0;
+ }
+
+ if ( !::lstrcmpiW(commands[0], L"blob"))
+ {
+ ppro->JoinToChat(arg);
+ break;
+ }
+
+ if ( !::lstrcmpiW( commands[0], L"topic"))
+ {
+ ::wcscpy(param->topic, arg);
+ ppro->CreateChat(param);
+ break;
+
+ }
+ //param
+ }
+
+ delete param;
+
+ return 0;
} \ No newline at end of file