From cae63f959eeacca02bf3504e77e8a6e4a1aa8499 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 6 Jul 2012 16:58:48 +0000 Subject: + stdautoaway + stdhelp + stduihist + stdidle + stduseronline git-svn-id: http://svn.miranda-ng.org/main/trunk@795 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- src/core/stdidle/main.cpp | 91 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/core/stdidle/main.cpp (limited to 'src/core/stdidle/main.cpp') diff --git a/src/core/stdidle/main.cpp b/src/core/stdidle/main.cpp new file mode 100644 index 0000000000..6845f61813 --- /dev/null +++ b/src/core/stdidle/main.cpp @@ -0,0 +1,91 @@ +/* + +Standard idle state module for Myranda IM + +Copyright (C) 2012 George Hazan + +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., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#include "commonheaders.h" + +int LoadIdleModule(void); +void UnloadIdleModule(void); + +CLIST_INTERFACE* pcli; +TIME_API tmi; +HINSTANCE hInst; +int hLangpack; + +pfnMyMonitorFromWindow MyMonitorFromWindow; +pfnMyGetMonitorInfo MyGetMonitorInfo; +pfnOpenInputDesktop openInputDesktop; +pfnCloseDesktop closeDesktop; + +PLUGININFOEX pluginInfo = { + sizeof(PLUGININFOEX), + __PLUGIN_NAME, + MIRANDA_VERSION_DWORD, + __DESCRIPTION, + __AUTHOR, + __AUTHOREMAIL, + __COPYRIGHT, + __AUTHORWEB, + UNICODE_AWARE, + // 53ac190b-e223-4341-825f-709d8520215b + { 0x53ac190b, 0xe223, 0x4341, {0x82, 0x5f, 0x70, 0x9d, 0x85, 0x20, 0x21, 0x5b}} +}; + +static const MUUID interfaces[] = { MIID_IDLE, MIID_LAST }; + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + hInst = hinstDLL; + return TRUE; +} + +extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) +{ + return &pluginInfo; +} + +extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void) +{ + return interfaces; +} + +extern "C" int __declspec(dllexport) Load(void) +{ + mir_getLP(&pluginInfo); + mir_getTMI(&tmi); + + HINSTANCE hUser32 = GetModuleHandleA("user32"); + openInputDesktop = (pfnOpenInputDesktop)GetProcAddress (hUser32, "OpenInputDesktop"); + closeDesktop = (pfnCloseDesktop)GetProcAddress (hUser32, "CloseDesktop"); + + MyMonitorFromWindow = (pfnMyMonitorFromWindow)GetProcAddress(hUser32, "MonitorFromWindow"); + MyGetMonitorInfo = (pfnMyGetMonitorInfo)GetProcAddress(hUser32, "GetMonitorInfoW"); + + pcli = ( CLIST_INTERFACE* )CallService(MS_CLIST_RETRIEVE_INTERFACE, 0, (LPARAM)hInst); + + LoadIdleModule(); + return 0; +} + +extern "C" int __declspec(dllexport) Unload(void) +{ + UnloadIdleModule(); + return 0; +} -- cgit v1.2.3