From c181af64bab27eb50e684c64c0a3caa49f8bbe39 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 8 Jul 2013 18:56:00 +0000 Subject: protocol helpers, beginning git-svn-id: http://svn.miranda-ng.org/main/trunk@5285 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- src/mir_core/mir_core.def | 2 ++ src/mir_core/protos.cpp | 19 +++++++++++++++++++ src/modules/protocols/protocols.cpp | 25 ------------------------- 3 files changed, 21 insertions(+), 25 deletions(-) (limited to 'src') diff --git a/src/mir_core/mir_core.def b/src/mir_core/mir_core.def index 1b3fbd6df1..0e4103229a 100644 --- a/src/mir_core/mir_core.def +++ b/src/mir_core/mir_core.def @@ -166,3 +166,5 @@ ProtoBroadcastAck @163 ProtoCallService @164 db_set_resident @165 db_set @166 +ProtoConstructor @167 +ProtoDestructor @168 diff --git a/src/mir_core/protos.cpp b/src/mir_core/protos.cpp index 6f2309e412..291b7a0fa4 100644 --- a/src/mir_core/protos.cpp +++ b/src/mir_core/protos.cpp @@ -24,6 +24,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "commonheaders.h" #include +#include +#include static HANDLE hAckEvent; @@ -81,3 +83,20 @@ MIR_CORE_DLL(int) ProtoServiceExists(const char *szModule, const char *szService strncat_s(str,szService,strlen(szService)); return ServiceExists(str); } + +///////////////////////////////////////////////////////////////////////////////////////// + +MIR_CORE_DLL(void) ProtoConstructor(PROTO_INTERFACE *pThis, LPCSTR pszModuleName, LPCTSTR ptszUserName) +{ + pThis->m_iVersion = 2; + pThis->m_iStatus = pThis->m_iDesiredStatus = ID_STATUS_OFFLINE; + pThis->m_szModuleName = mir_strdup(pszModuleName); + pThis->m_hProtoIcon = (HANDLE)CallService("Skin2/Icons/IsManaged", (WPARAM)LoadSkinnedProtoIcon(pszModuleName, ID_STATUS_ONLINE), 0); + pThis->m_tszUserName = mir_tstrdup(ptszUserName); +} + +MIR_CORE_DLL(void) ProtoDestructor(PROTO_INTERFACE *pThis) +{ + mir_free(pThis->m_szModuleName); + mir_free(pThis->m_tszUserName); +} diff --git a/src/modules/protocols/protocols.cpp b/src/modules/protocols/protocols.cpp index 426bf039fb..14abba9059 100644 --- a/src/modules/protocols/protocols.cpp +++ b/src/modules/protocols/protocols.cpp @@ -622,28 +622,6 @@ INT_PTR CallProtoServiceInt(HANDLE hContact, const char *szModule, const char *s ///////////////////////////////////////////////////////////////////////////////////////// -static INT_PTR srvProtoConstructor(WPARAM wParam, LPARAM lParam) -{ - PROTO_INTERFACE *ppi = (PROTO_INTERFACE*)wParam; - LPCSTR szProtoName = (LPCSTR)lParam; - - ppi->m_iVersion = 2; - ppi->m_iStatus = ppi->m_iDesiredStatus = ID_STATUS_OFFLINE; - ppi->m_szModuleName = mir_strdup(szProtoName); - ppi->m_hProtoIcon = (HANDLE)CallService(MS_SKIN2_ISMANAGEDICON, (WPARAM)LoadSkinnedProtoIcon(szProtoName, ID_STATUS_ONLINE), 0); - return 0; -} - -static INT_PTR srvProtoDestructor(WPARAM wParam, LPARAM) -{ - PROTO_INTERFACE *ppi = (PROTO_INTERFACE*)wParam; - mir_free(ppi->m_szModuleName); - mir_free(ppi->m_tszUserName); - return 0; -} - -///////////////////////////////////////////////////////////////////////////////////////// - static void InsertServiceListItem(int id, const char* szName) { TServiceListItem* p = (TServiceListItem*)mir_alloc(sizeof(TServiceListItem)); @@ -724,9 +702,6 @@ int LoadProtocolsModule(void) CreateServiceFunction(MS_PROTO_ENUMACCOUNTS, Proto_EnumAccounts); CreateServiceFunction(MS_PROTO_GETACCOUNT, srvProto_GetAccount); - CreateServiceFunction("Proto/Constructor", srvProtoConstructor); - CreateServiceFunction("Proto/Destructor", srvProtoDestructor); - CreateServiceFunction(MS_PROTO_ISACCOUNTENABLED, srvProto_IsAccountEnabled); CreateServiceFunction(MS_PROTO_ISACCOUNTLOCKED, srvProto_IsAccountLocked); -- cgit v1.2.3