From bb3b1c84d2426172e1bd9db94872d5f5fa1e5182 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Mon, 16 Aug 2010 19:16:53 +0300 Subject: infernal crutches --- utilities.cpp | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) (limited to 'utilities.cpp') diff --git a/utilities.cpp b/utilities.cpp index 85cb4ec..f909121 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -295,3 +295,60 @@ int ComboBoxAddStringUtf(HWND hCombo, const TCHAR *szString, DWORD data) return item; } + + +int GetJabberInterface(WPARAM w, LPARAM l) //get interface for all jabber accounts, options later +{ + extern list Accounts; + void AddHandlers(); + int count = 0; + PROTOACCOUNT **accounts; + ProtoEnumAccounts(&count, &accounts); + list ::iterator p; + Accounts.clear(); + Accounts.push_back(new JabberAccount); + p = Accounts.begin(); + (*p)->setAccountNumber(0); + for(int i = 0; i < count; i++) //get only jabber accounts from all accounts + { + char *tmp = mir_u2a(accounts[i]->tszAccountName); + IJabberInterface *JIftmp = getJabberApi(tmp); + int a = 0; + if(JIftmp) + { + (*p)->setJabberInterface(JIftmp); + (*p)->setAccountName(accounts[i]->tszAccountName); + (*p)->setAccountNumber(a); + (*p)->setSendHandler(INVALID_HANDLE_VALUE); + a++; + p++; + Accounts.push_back(new JabberAccount); + } + mir_free(tmp); + //should i free JIftmp ? + } + Accounts.pop_back(); + AddHandlers(); + return 0; +} + +static JABBER_HANDLER_FUNC SendHandler(IJabberInterface *ji, HXML node, void *pUserData) +{ + return FALSE; +} + + +void AddHandlers() +{ + extern list Accounts; + list ::iterator p = Accounts.begin(); + for(unsigned int i = 0; i < Accounts.size(); i++, p++) + { + if(!(*p)) + break; + if((*p)->getSendHandler() == INVALID_HANDLE_VALUE) + { + (*p)->setSendHandler((*p)->getJabberInterface()->Net()->AddSendHandler((JABBER_HANDLER_FUNC)SendHandler)); + } + } +} -- cgit v1.2.3