1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#include "skype.h"
CSkypeProto::CSkypeProto(const char* protoName, const TCHAR* userName)
{
m_iVersion = 2;
m_iStatus = ID_STATUS_OFFLINE;
m_tszUserName = mir_tstrdup(userName);
m_szModuleName = mir_strdup(protoName);
m_szProtoName = mir_strdup(protoName);
_strlwr(m_szProtoName);
m_szProtoName[0] = toupper(m_szProtoName[0]);
TCHAR name[128];
mir_sntprintf(name, SIZEOF(name), TranslateT("%s connection"), m_tszUserName);
NETLIBUSER nlu = {0};
nlu.cbSize = sizeof( nlu );
nlu.flags = NUF_OUTGOING | NUF_INCOMING | NUF_HTTPCONNS | NUF_TCHAR; // | NUF_HTTPGATEWAY;
nlu.ptszDescriptiveName = name;
nlu.szSettingsModule = m_szModuleName;
m_hNetlibUser = (HANDLE)CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nlu);
this->Log("Setting protocol/module name to '%s/%s'", m_szProtoName, m_szModuleName);
}
CSkypeProto::~CSkypeProto()
{
Netlib_CloseHandle(m_hNetlibUser);
m_hNetlibUser = NULL;
mir_free(m_szProtoName);
mir_free(m_szModuleName);
mir_free(m_tszUserName);
}
void CSkypeProto::Log( const char* fmt, ... )
{
va_list va;
char msg[1024];
va_start(va, fmt);
mir_vsnprintf(msg, sizeof(msg), fmt, va);
va_end(va);
CallService(MS_NETLIB_LOG, ( WPARAM )m_hNetlibUser, (LPARAM)msg);
}
void CSkypeProto::CreateProtoService(const char *szService, ServiceFunc serviceProc)
{
char str[ MAXMODULELABELLENGTH ];
strcpy( str, m_szModuleName );
strcat( str, szService );
::CreateServiceFunctionObj( str, ( MIRANDASERVICEOBJ )*( void** )&serviceProc, this );
}
|