From 2493987e8492b4b637693cc0e0564449d9a336ab Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@4f64403b-2f21-0410-a795-97e2b3489a10> Date: Mon, 24 Nov 2008 12:06:54 +0000 Subject: fix utf conversion of status messages handle 'in a meeting' status version change git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@430 4f64403b-2f21-0410-a795-97e2b3489a10 --- sametime/sametime.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'sametime/sametime.cpp') diff --git a/sametime/sametime.cpp b/sametime/sametime.cpp index 75ed96a..d9d8076 100644 --- a/sametime/sametime.cpp +++ b/sametime/sametime.cpp @@ -16,6 +16,8 @@ char PROTO_GROUPS[128]; bool unicode_chat = false; int code_page = CP_ACP; +MM_INTERFACE mmi; +UTF8_INTERFACE utfi; HINSTANCE hInst; PLUGINLINK *pluginLink; @@ -35,7 +37,7 @@ bool is_idle = false; PLUGININFOEX pluginInfo={ sizeof(PLUGININFOEX), "Sametime Protocol", - PLUGIN_MAKE_VERSION(0, 5, 8, 0), + PLUGIN_MAKE_VERSION(0, 5, 9, 0), "Implementation of Instant Messaging for the Lotus Sametime protocol.", "Scott Ellis", "mail@scottellis.com.au", @@ -82,13 +84,16 @@ int GetCaps(WPARAM wParam,LPARAM lParam) ret = PF1_IM | PF1_BASICSEARCH | PF1_EXTSEARCHUI | PF1_ADDSEARCHRES | PF1_MODEMSG | PF1_FILE | PF1_CHAT; break; case PFLAGNUM_2: - ret = PF2_ONLINE | PF2_SHORTAWAY | PF2_HEAVYDND; + ret = PF2_ONLINE | PF2_SHORTAWAY | PF2_HEAVYDND | PF2_LIGHTDND; break; case PFLAGNUM_3: ret = PF2_ONLINE | PF2_SHORTAWAY | PF2_HEAVYDND; break; case PFLAGNUM_4: - ret = PF4_SUPPORTTYPING; + ret = PF4_SUPPORTTYPING; + break; + case PFLAGNUM_5: + ret = PF2_LIGHTDND; break; case PFLAG_UNIQUEIDTEXT: ret = (int) Translate("Id"); @@ -418,7 +423,9 @@ int RecvAwayMessage(WPARAM wParam, LPARAM lParam) { CCSDATA* ccs = (CCSDATA*)lParam; PROTORECVEVENT* pre = (PROTORECVEVENT*)ccs->lParam; - ProtoBroadcastAck(PROTO, ccs->hContact, ACKTYPE_AWAYMSG, ACKRESULT_SUCCESS, (HANDLE)1, (LPARAM)pre->szMessage); + char *msg = utfi.utf8_decodecp(pre->szMessage, code_page, 0); + ProtoBroadcastAck(PROTO, ccs->hContact, ACKTYPE_AWAYMSG, ACKRESULT_SUCCESS, (HANDLE)1, (LPARAM)msg); + mir_free(msg); return 0; } @@ -770,6 +777,9 @@ extern "C" SAMETIME_API int Load(PLUGINLINK *link) if(ServiceExists(MS_LANGPACK_GETCODEPAGE)) code_page = CallService(MS_LANGPACK_GETCODEPAGE, 0, 0); + mir_getMMI(&mmi); + mir_getUTFI(&utfi); + if(ServiceExists(MS_DB_SETSETTINGRESIDENT)) { // 0.6+ char buff[256]; -- cgit v1.2.3