summaryrefslogtreecommitdiff
path: root/plugins/SmartAutoAway/saa.cpp
diff options
context:
space:
mode:
authorRobert Pösel <robyer@seznam.cz>2012-07-10 20:15:30 +0000
committerRobert Pösel <robyer@seznam.cz>2012-07-10 20:15:30 +0000
commit2850a08595f1bc86384d230a85de29ac794f97ef (patch)
treee43db3fcbae258128824c541ce994443e5f9388a /plugins/SmartAutoAway/saa.cpp
parent7334ecff1581f0294e6fa7f594f828f85d45abb5 (diff)
Added SmartAutoAway (not adopted yet)
git-svn-id: http://svn.miranda-ng.org/main/trunk@894 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/SmartAutoAway/saa.cpp')
-rw-r--r--plugins/SmartAutoAway/saa.cpp130
1 files changed, 130 insertions, 0 deletions
diff --git a/plugins/SmartAutoAway/saa.cpp b/plugins/SmartAutoAway/saa.cpp
new file mode 100644
index 0000000000..b48b474faa
--- /dev/null
+++ b/plugins/SmartAutoAway/saa.cpp
@@ -0,0 +1,130 @@
+/*
+
+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
+ );
+ };
+ sprintf(description,"%s\r\n[Build %s %s]",description, __DATE__,__TIME__);
+ 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);
+}
+
+static 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
+}
+
+