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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
/*
Miranda IM: the free IM client for Microsoft* Windows*
Copyright 2000-2006 Miranda ICQ/IM project,
all portions of this codebase are copyrighted to the people
listed in contributors.txt.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "saa.h"
int InitVariables( WPARAM wParam, LPARAM lParam );
PLUGINLINK *pluginLink;
HINSTANCE g_hInst;
PLUGININFOEX pluginInfo = {
sizeof(PLUGININFOEX),
#ifdef AALOG
SECTIONNAME " - Debug",
#else
SECTIONNAME,
#endif
#include "version.txt"
UNICODE_AWARE,
DEFMOD_RNDAUTOAWAY, // replace internal version (if any)
#if defined( _UNICODE )
{0xec29e895,0x9f97,0x4cb1,{0xac, 0x9b, 0xb1, 0xae, 0x88, 0x25, 0x8b, 0x4a} /* EC29E895-9F97-4cb1-AC9B-B1AE88258B4A */}
#else
{0x19c5be89,0xf7e3,0x4632,{0xa1, 0x25, 0x15, 0xf3, 0x84, 0xcd, 0x0c, 0xd3} /* 19c5be89-f7e3-4632-a125-15f384cd0cd3 */}
#endif
};
static HMODULE hUxTheme = 0;
BOOL (WINAPI *enableThemeDialogTexture)(HANDLE, DWORD) = 0;
extern "C" BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
g_hInst = hinstDLL;
return TRUE;
}
static char description[1023];
#ifdef AALOG
static BOOL warningShown = 0;
#endif
static bool isNewMiranda = false;
extern "C" __declspec(dllexport) PLUGININFOEX *MirandaPluginInfo(DWORD mirandaVersion)
{
sprintf(description,"Highly configurable AutoAway/Idle/Reconnect system");
#ifdef AALOG
sprintf(description,"%s\r\nThis is the debug version. It will make a lot of noise through Netlib log",description);
if (!warningShown) {
MessageBoxA(0,description,pluginInfo.shortName,MB_ICONINFORMATION);
warningShown = 1;
}
#endif
if ((mirandaVersion>=0x00030400) && (!isNewMiranda)) {
sprintf(description,"%s\r\n%s",description,"Miranda %d.%d.%d.%d has build-in \"Idle\" support and it is highly advisable to suppress it by putting SAANI.dll in plugins directory.");
sprintf(description,description, // Yes, I realize this is strange approach...
mirandaVersion>>24&0xFF,
mirandaVersion>>16&0xFF,
mirandaVersion>>8&0xFF,
mirandaVersion&0xFF
);
};
pluginInfo.description = description;
if ( mirandaVersion < PLUGIN_MAKE_VERSION( 0,7,0,17 )) pluginInfo.cbSize = sizeof( PLUGININFO );
return &pluginInfo;
}
extern "C" __declspec(dllexport) PLUGININFOEX * MirandaPluginInfoEx(DWORD mirandaVersion)
{
isNewMiranda=true;
return MirandaPluginInfo(mirandaVersion);
}
extern "C" __declspec(dllexport) const MUUID interfaces[] = {MIID_AUTOAWAY, MIID_IDLE, MIID_LAST};
extern "C" __declspec(dllexport) const MUUID * MirandaPluginInterfaces(void)
{
return interfaces;
}
extern "C" int __declspec(dllexport) Load(PLUGINLINK * link)
{
pluginLink = link;
LoadAutoAwayModule();
hUxTheme = GetModuleHandle(_T("uxtheme.dll"));
if(hUxTheme)
enableThemeDialogTexture = (BOOL (WINAPI *)(HANDLE, DWORD))GetProcAddress(hUxTheme, "EnableThemeDialogTexture");
return 0;
}
extern "C" int __declspec(dllexport) Unload(void)
{
// AutoAwayShutdown(0,0);
//#ifdef AALOG
// CallService("Netlib/Log" ,(WPARAM)hNetlib ,(LPARAM)"Killing Timer");
//#endif
// KillTimer(NULL, hIdleTimer);
//#ifdef AALOG
// CallService("Netlib/Log" ,(WPARAM)hNetlib ,(LPARAM)"DestroyHookableEvent(hIdleEvent)");
//#endif
// DestroyHookableEvent(hIdleEvent);
if(hUxTheme != 0)
FreeLibrary(hUxTheme);
return 1; //if 1 we dont want to shutdown because we have hooked ME_SYSTEM_SHUTDOWN
}
|