summaryrefslogtreecommitdiff
path: root/plugins/FingerprintNG/src/main.cpp
diff options
context:
space:
mode:
authorKirill Volinsky <mataes2007@gmail.com>2012-11-18 18:15:18 +0000
committerKirill Volinsky <mataes2007@gmail.com>2012-11-18 18:15:18 +0000
commit205b13d4bca365dca8874cb8a05a15f6d7870e3b (patch)
treef1cc2c2abbf6d209f53812e4d902066c6a174e4e /plugins/FingerprintNG/src/main.cpp
parent358c3ada4d37cd8910869f39969591b0140c9384 (diff)
new generation of fingerprint plugin
git-svn-id: http://svn.miranda-ng.org/main/trunk@2360 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/FingerprintNG/src/main.cpp')
-rw-r--r--plugins/FingerprintNG/src/main.cpp111
1 files changed, 111 insertions, 0 deletions
diff --git a/plugins/FingerprintNG/src/main.cpp b/plugins/FingerprintNG/src/main.cpp
new file mode 100644
index 0000000000..5834cac369
--- /dev/null
+++ b/plugins/FingerprintNG/src/main.cpp
@@ -0,0 +1,111 @@
+/*
+Fingerprint NG (client version) icons module for Miranda NG
+Copyright © 2006-12 FYR, Bio, nullbie, ghazan, mataes, HierOS, faith_healer and all respective contributors.
+
+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.
+*/
+
+//Start of header
+#include "global.h"
+
+#define LIB_REG 2
+#define LIB_USE 3
+
+HINSTANCE g_hInst;
+int hLangpack;
+
+HANDLE hHeap = NULL;
+
+HANDLE compClientServA = NULL;
+HANDLE getClientIconA = NULL;
+
+HANDLE compClientServW = NULL;
+HANDLE getClientIconW = NULL;
+LPSTR g_szClientDescription = NULL;
+
+HANDLE hStaticHooks[1] = { NULL };
+
+//End of header
+
+// PluginInfo & PluginInfoEx
+PLUGININFOEX pluginInfoEx = {
+ sizeof(PLUGININFOEX),
+ __INTERNAL_NAME_STRING,
+ __VERSION_DWORD,
+ "Fingerprint NG (client version) icons module for Miranda NG",
+ "Copyright © 2006-12 ghazan, mataes, HierOS, FYR, Bio, nullbie, faith_healer and all respective contributors.",
+ "faith_healer@miranda.im",
+ __LEGAL_COPYRIGHT_STRING,
+ "http://miranda-ng.org/",
+ UNICODE_AWARE,
+ MIID_THIS_PLUGIN
+};
+
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+{
+ g_hInst = hinstDLL;
+ return TRUE;
+}
+
+extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion)
+{
+ return &pluginInfoEx;
+}
+
+extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_FINGERPRINT, MIID_LAST };
+
+///////////////////////////////////////////////////////////////////////////////
+
+static int OnPreShutdown(WPARAM wParam, LPARAM lParam)
+{
+ DestroyServiceFunction(compClientServA);
+ DestroyServiceFunction(getClientIconA);
+ DestroyServiceFunction(compClientServW);
+ DestroyServiceFunction(getClientIconW);
+
+ return 0;
+}
+
+extern "C" int __declspec(dllexport) Load(void)
+{
+ mir_getLP(&pluginInfoEx);
+
+ hStaticHooks[0] = HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded);
+ HookEvent(ME_SYSTEM_PRESHUTDOWN, OnPreShutdown);
+ compClientServA = CreateServiceFunction(MS_FP_SAMECLIENTS, ServiceSameClientsA);
+ getClientIconA = CreateServiceFunction(MS_FP_GETCLIENTICON, ServiceGetClientIconA);
+
+ compClientServW = CreateServiceFunction(MS_FP_SAMECLIENTSW, ServiceSameClientsW);
+ getClientIconW = CreateServiceFunction(MS_FP_GETCLIENTICONW, ServiceGetClientIconW);
+ return 0;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+extern "C" int __declspec(dllexport) Unload()
+{
+ if (g_szClientDescription != NULL)
+ mir_free(g_szClientDescription);
+
+ HeapDestroy(hHeap);
+ ClearFI();
+
+ for (size_t i = 0; i < SIZEOF(hStaticHooks); i++)
+ {
+ UnhookEvent(hStaticHooks[i]);
+ hStaticHooks[i] = NULL;
+ }
+ return 0;
+}