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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
#include "commonheaders.h"
LPCSTR szModuleName = MODULENAME;
LPCSTR szVersionStr = MODULENAME" DLL ("__VERSION_STRING")";
HINSTANCE g_hInst;
HANDLE hPGPPRIV = NULL;
HANDLE hRSA4096 = NULL;
CRITICAL_SECTION localQueueMutex;
CRITICAL_SECTION localContextMutex;
char TEMP[MAX_PATH];
int TEMP_SIZE = 0;
BOOL isVista = 0;
PLUGININFOEX pluginInfoEx = {
sizeof(PLUGININFOEX),
MODULENAME,
__VERSION_DWORD,
MODULENAME" library for SecureIM plugin.",
"Baloo",
"baloo@bk.ru",
"© 2006-09 Baloo",
"http://miranda-ng.org/",
0,
MIID_CRYPTOPP
};
BOOL ExtractFileFromResource( HANDLE FH, int ResType, int ResId, DWORD* Size )
{
HRSRC RH;
PBYTE RP;
DWORD s,x;
RH = FindResource( g_hInst, MAKEINTRESOURCE( ResId ), MAKEINTRESOURCE( ResType ) );
if ( RH == NULL ) return FALSE;
RP = (PBYTE) LoadResource( g_hInst, RH );
if ( RP == NULL ) return FALSE;
s = SizeofResource( g_hInst, RH );
if ( !WriteFile( FH, RP, s, &x, NULL ) ) return FALSE;
if ( x != s ) return FALSE;
if ( Size ) *Size = s;
return TRUE;
}
void ExtractFile( char *FileName, int ResType, int ResId )
{
HANDLE FH;
FH = CreateFile( FileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL );
if ( FH == INVALID_HANDLE_VALUE ) return;
if (!ExtractFileFromResource( FH, ResType, ResId, NULL )) MessageBoxA(0,"Can't extract","!!!",MB_OK);
CloseHandle( FH );
}
size_t rtrim(LPCSTR str) {
size_t len = strlen(str);
LPSTR ptr = (LPSTR)str+len-1;
while( len ) {
char c = *ptr;
if ( c != '\x20' && c != '\x09' && c != '\x0A' && c != '\x0D' ) {
*(ptr+1) = '\0';
break;
}
len--; ptr--;
}
return len;
}
#if defined(_DEBUG) || defined(NETLIB_LOG)
HANDLE hNetlibUser;
void InitNetlib() {
NETLIBUSER nl_user;
memset(&nl_user,0,sizeof(nl_user));
nl_user.cbSize = sizeof(nl_user);
nl_user.szSettingsModule = (LPSTR)szModuleName;
nl_user.szDescriptiveName = (LPSTR)szModuleName;
nl_user.flags = NUF_NOOPTIONS;
hNetlibUser = (HANDLE)CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nl_user);
}
void DeinitNetlib() {
if (hNetlibUser)
CallService(MS_NETLIB_CLOSEHANDLE, (WPARAM)hNetlibUser, 0);
}
int Sent_NetLog(const char *fmt,...)
{
va_list va;
char szText[1024];
va_start(va,fmt);
mir_vsnprintf(szText,sizeof(szText),fmt,va);
va_end(va);
if (hNetlibUser)
return CallService(MS_NETLIB_LOG,(WPARAM)hNetlibUser,(LPARAM)szText);
return 0;
}
#endif
// EOF
|