extern "C" int __declspec(dllexport) Load(PLUGINLINK *link) { pluginLink=link; if(mir_getMMI(&mmi)) { MessageBox(NULL,_T("Avatar History"),_T("Miranda Memory manager not initialized, plugin cannot load.\nPlease update Miranda IM to the latest version."),MB_OK | MB_TOPMOST); return 1; } if(mir_getUTFI(&utfi)) { MessageBox(NULL,_T("Avatar History"),_T("Miranda UTF8 interface not initialized, plugin cannot load.\nPlease update Miranda IM to the latest version."),MB_OK | MB_TOPMOST); return 1; } mir_getLP(&pluginInfo); // Is first run? if (DBGetContactSettingByte(NULL, MODULE_NAME, "FirstRun", 1)) { // Show dialog int ret = DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_FIRST_RUN), NULL, FirstRunDlgProc, 0); if (ret == 0) return -1; // Write settings DBWriteContactSettingByte(NULL, MODULE_NAME, "LogToDisk", 1); if (ret == IDC_MIR_SAME) DBWriteContactSettingByte(NULL, MODULE_NAME, "LogKeepSameFolder", 1); else DBWriteContactSettingByte(NULL, MODULE_NAME, "LogKeepSameFolder", 0); if (ret == IDC_MIR_SHORT || ret == IDC_SHORT || ret == IDC_DUP) DBWriteContactSettingByte(NULL, MODULE_NAME, "LogPerContactFolders", 1); else DBWriteContactSettingByte(NULL, MODULE_NAME, "LogPerContactFolders", 0); if (ret == IDC_DUP) DBWriteContactSettingByte(NULL, MODULE_NAME, "StoreAsHash", 0); else DBWriteContactSettingByte(NULL, MODULE_NAME, "StoreAsHash", 1); if (ret == IDC_MIR_SAME || ret == IDC_MIR_PROTO || ret == IDC_MIR_SHORT) DBWriteContactSettingByte(NULL, MODULE_NAME, "LogToHistory", 1); else DBWriteContactSettingByte(NULL, MODULE_NAME, "LogToHistory", 0); DBWriteContactSettingByte(NULL, MODULE_NAME, "FirstRun", 0); } LoadOptions(); hHooks[0] = HookEvent(ME_SYSTEM_MODULESLOADED,ModulesLoaded); hHooks[1] = HookEvent(ME_SYSTEM_PRESHUTDOWN, PreShutdown); hHooks[3] = HookEvent(ME_OPT_INITIALISE, OptInit); hHooks[4] = HookEvent(ME_SKIN2_ICONSCHANGED, IcoLibIconsChanged); hHooks[5] = HookEvent(ME_CLIST_PREBUILDCONTACTMENU, PreBuildContactMenu); hServices[0] = CreateServiceFunction(MS_AVATARHISTORY_ENABLED, IsEnabled); hServices[1] = CreateServiceFunction(MS_AVATARHISTORY_GET_CACHED_AVATAR, GetCachedAvatar); if(CallService(MS_DB_GETPROFILEPATHT, MAX_PATH, (LPARAM)profilePath) != 0) _tcscpy(profilePath, _T(".")); // Failed, use current dir SkinAddNewSoundExT("avatar_changed",LPGENT("Avatar History"),LPGENT("Contact changed avatar")); SkinAddNewSoundExT("avatar_removed",LPGENT("Avatar History"),LPGENT("Contact removed avatar")); hAvatarWindowsList = (HANDLE)CallService(MS_UTILS_ALLOCWINDOWLIST, 0, 0); SetupIcoLib(); InitMenuItem(); return 0; }
extern "C" __declspec(dllexport) int Load(void) { mir_getLP(&pluginInfo); CoInitialize(NULL); // Is first run? if ( db_get_b(NULL, MODULE_NAME, "FirstRun", 1)) { // Show dialog int ret = DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_FIRST_RUN), NULL, FirstRunDlgProc, 0); if (ret == 0) return -1; // Write settings db_set_b(NULL, MODULE_NAME, "LogToDisk", 1); if (ret == IDC_MIR_SAME) db_set_b(NULL, MODULE_NAME, "LogKeepSameFolder", 1); else db_set_b(NULL, MODULE_NAME, "LogKeepSameFolder", 0); if (ret == IDC_MIR_SHORT || ret == IDC_SHORT || ret == IDC_DUP) db_set_b(NULL, MODULE_NAME, "LogPerContactFolders", 1); else db_set_b(NULL, MODULE_NAME, "LogPerContactFolders", 0); if (ret == IDC_DUP) db_set_b(NULL, MODULE_NAME, "StoreAsHash", 0); else db_set_b(NULL, MODULE_NAME, "StoreAsHash", 1); if (ret == IDC_MIR_SAME || ret == IDC_MIR_PROTO || ret == IDC_MIR_SHORT) db_set_b(NULL, MODULE_NAME, "LogToHistory", 1); else db_set_b(NULL, MODULE_NAME, "LogToHistory", 0); db_set_b(NULL, MODULE_NAME, "FirstRun", 0); } LoadOptions(); HookEvent(ME_SYSTEM_MODULESLOADED,ModulesLoaded); HookEvent(ME_SYSTEM_PRESHUTDOWN, PreShutdown); HookEvent(ME_OPT_INITIALISE, OptInit); HookEvent(ME_SKIN2_ICONSCHANGED, IcoLibIconsChanged); HookEvent(ME_CLIST_PREBUILDCONTACTMENU, PreBuildContactMenu); CreateServiceFunction(MS_AVATARHISTORY_ENABLED, IsEnabled); CreateServiceFunction(MS_AVATARHISTORY_GET_CACHED_AVATAR, GetCachedAvatar); if (CallService(MS_DB_GETPROFILEPATHT, MAX_PATH, (LPARAM)profilePath) != 0) _tcscpy(profilePath, _T(".")); // Failed, use current dir SkinAddNewSoundExT("avatar_changed",LPGENT("Avatar History"),LPGENT("Contact changed avatar")); SkinAddNewSoundExT("avatar_removed",LPGENT("Avatar History"),LPGENT("Contact removed avatar")); hAvatarWindowsList = WindowList_Create(); SetupIcoLib(); InitMenuItem(); return 0; }