diff options
Diffstat (limited to 'meta2/meta2.cpp')
-rw-r--r-- | meta2/meta2.cpp | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/meta2/meta2.cpp b/meta2/meta2.cpp new file mode 100644 index 0000000..eba4262 --- /dev/null +++ b/meta2/meta2.cpp @@ -0,0 +1,107 @@ +/* Replace "dll.h" with the name of your header */
+#include "common.h"
+#include "version.h"
+#include "resource.h"
+#include "options.h"
+#include "proto.h"
+#include "menu.h"
+#include "icons.h"
+#include "api.h"
+#include "priorities.h"
+#include "m_metacontacts.h"
+#include "settings.h"
+#include "import.h"
+
+///////////////////////////////////////////////
+// Common Plugin Stuff
+///////////////////////////////////////////////
+HINSTANCE hInst;
+PLUGINLINK *pluginLink;
+MM_INTERFACE mmi;
+UTF8_INTERFACE utfi;
+HANDLE metaMainThread;
+
+PLUGININFOEX pluginInfo={
+ sizeof(PLUGININFOEX),
+ __PLUGIN_NAME,
+ PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM),
+ __DESC,
+ __AUTHOR,
+ __AUTHOREMAIL,
+ __COPYRIGHT,
+ __AUTHORWEB,
+ UNICODE_AWARE,
+ 0,
+ { 0x5F9B2B98, 0x3412, 0x4671, { 0x89, 0xAD, 0x5B, 0xA9, 0x53, 0x74, 0xC6, 0xA8 } }
+};
+
+
+extern "C" BOOL APIENTRY DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) {
+ hInst=hinstDLL;
+ return TRUE;
+}
+
+extern "C" __declspec (dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) {
+ return &pluginInfo;
+}
+
+
+// TODO: add any interfaces you implement to this list
+static const MUUID interfaces[] = {MIID_PROTOCOL, MIID_METACONTACTS, MIID_LAST};
+extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void)
+{
+ return interfaces;
+}
+
+int ModulesLoaded(WPARAM wParam, LPARAM lParam) {
+ InitIcons();
+ InitMenu();
+
+ if(DBGetContactSettingByte(0, MODULE, "FirstRun", 1) == 1) {
+ ImportOldMetas();
+ DBWriteContactSettingByte(0, MODULE, "FirstRun", 0);
+ }
+ return 0;
+}
+
+HANDLE hModulesLoaded;
+extern "C" __declspec (dllexport) int Load(PLUGINLINK *link) {
+
+ pluginLink=link;
+ DuplicateHandle( GetCurrentProcess(), GetCurrentThread(), GetCurrentProcess(), &metaMainThread, THREAD_SET_CONTEXT, FALSE, 0 );
+
+ mir_getMMI(&mmi);
+ mir_getUTFI(&utfi);
+
+ InitOptions();
+ InitPriorities();
+
+ CallService(MS_DB_SETSETTINGRESIDENT, TRUE, (LPARAM)(MODULE "/Status"));
+ CallService(MS_DB_SETSETTINGRESIDENT, TRUE, (LPARAM)(MODULE "/IdleTS"));
+ CallService(MS_DB_SETSETTINGRESIDENT, TRUE, (LPARAM)(MODULE "/Handle"));
+ CallService(MS_DB_SETSETTINGRESIDENT, TRUE, (LPARAM)(MODULE "/WindowOpen"));
+ CallService(MS_DB_SETSETTINGRESIDENT, TRUE, (LPARAM)(MODULE "/IsSubcontact"));
+ CallService(MS_DB_SETSETTINGRESIDENT, TRUE, (LPARAM)(MODULE "/ForceSend"));
+ CallService(MS_DB_SETSETTINGRESIDENT, TRUE, (LPARAM)(MODULE "/TempDefault"));
+
+ InitProto();
+ InitAPI();
+ InitSettings(link);
+
+ // hook modules loaded
+ hModulesLoaded = HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded);
+ return 0;
+}
+
+extern "C" __declspec (dllexport) int Unload(void) {
+ DeinitSettings();
+ UnhookEvent(hModulesLoaded);
+ DeinitMenu();
+ DeinitIcons();
+ DeinitAPI();
+ DeinitProto();
+ DeinitPriorities();
+ DeinitOptions();
+
+ return 0;
+}
|