diff options
author | Robert Pösel <robyer@seznam.cz> | 2014-09-18 09:39:45 +0000 |
---|---|---|
committer | Robert Pösel <robyer@seznam.cz> | 2014-09-18 09:39:45 +0000 |
commit | a4861f09eb12744e28718da2e38dda9482b5dc2a (patch) | |
tree | ce2dab4b80886823e656fa3e9c1ec98f8028514e /protocols/Dummy/src/main.cpp | |
parent | f6ea237b83c24ff0a9bfe8722465cde83c0b5d2d (diff) |
Implement basic Dummy protocol
git-svn-id: http://svn.miranda-ng.org/main/trunk@10506 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/Dummy/src/main.cpp')
-rw-r--r-- | protocols/Dummy/src/main.cpp | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/protocols/Dummy/src/main.cpp b/protocols/Dummy/src/main.cpp new file mode 100644 index 0000000000..2feae8d894 --- /dev/null +++ b/protocols/Dummy/src/main.cpp @@ -0,0 +1,101 @@ +/* +Copyright (c) 2014 Robert Pösel + +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 version 2 +of the License. + +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, see <http://www.gnu.org/licenses/>. +*/ + +#include "stdafx.h" +#include "version.h" + +HINSTANCE hInst; +int hLangpack; +CLIST_INTERFACE *pcli; + +PLUGININFOEX pluginInfo = +{ + sizeof(PLUGININFOEX), + __PLUGIN_NAME, + PLUGIN_MAKE_VERSION(__MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM), + __DESCRIPTION, + __AUTHOR, + __AUTHOREMAIL, + __COPYRIGHT, + __AUTHORWEB, + UNICODE_AWARE, + // {2A1081D1-AEE3-4091-B70D-AE46D09F9A7F} + { 0x2a1081d1, 0xaee3, 0x4091, {0xb7, 0xd, 0xae, 0x46, 0xd0, 0x9f, 0x9a, 0x7f}} +}; + +///////////////////////////////////////////////////////////////////////////////////////// + +BOOL WINAPI DllMain(HINSTANCE hModule, DWORD, LPVOID) +{ + hInst = hModule; + return TRUE; +} + +extern "C" __declspec(dllexport) PLUGININFOEX *MirandaPluginInfoEx(DWORD mirandaVersion) +{ + return &pluginInfo; +} + +extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_PROTOCOL, MIID_LAST}; + +///////////////////////////////////////////////////////////////////////////////////////// +// OnModulesLoaded - execute some code when all plugins are initialized + +static int OnModulesLoaded(WPARAM, LPARAM) +{ + return 0; +} + +///////////////////////////////////////////////////////////////////////////////////////// +// OnLoad - initialize the plugin instance + +static CDummyProto* dummyProtoInit(const char* pszProtoName, const TCHAR *tszUserName) +{ + CDummyProto *ppro = new CDummyProto(pszProtoName, tszUserName); + return ppro; +} + +static int dummyProtoUninit(CDummyProto *ppro) +{ + delete ppro; + return 0; +} + +extern "C" int __declspec(dllexport) Load() +{ + mir_getLP(&pluginInfo); + mir_getCLI(); + + // Register protocol module + PROTOCOLDESCRIPTOR pd = { sizeof(pd) }; + pd.szName = "Dummy"; + pd.fnInit = (pfnInitProto)dummyProtoInit; + pd.fnUninit = (pfnUninitProto)dummyProtoUninit; + pd.type = PROTOTYPE_PROTOCOL; + CallService(MS_PROTO_REGISTERMODULE, 0, (LPARAM)&pd); + + HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded); + return 0; +} + +///////////////////////////////////////////////////////////////////////////////////////// +// Unload - destroy the plugin instance + +extern "C" int __declspec(dllexport) Unload(void) +{ + return 0; +} |