/*
Sessions Management plugin for Miranda IM
Copyright (C) 2007-2008 Danil Mozhar
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 3 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, see .
*/
#pragma once
#define _CRT_SECURE_NO_DEPRECATE
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "Utils.h"
#include "version.h"
#include "Resource.h"
#define MODULENAME "Sessions"
struct CMPlugin : public PLUGIN
{
CMOption g_lastUserId, g_lastDateId;
CMPlugin();
void CheckImport();
int Load() override;
};
/////////////////////////////////////////////////////////////////////////////////////////
struct CSession
{
int id;
CMStringW wszName;
std::vector contacts;
bool bIsFavorite = false, bIsUser = false;
void fromString(const char *str);
std::string toString() const;
CMStringA getSetting() const;
void remove();
void save();
};
extern OBJLIST g_arUserSessions, g_arDateSessions;
/////////////////////////////////////////////////////////////////////////////////////////
int LoadSession(CSession *pSession);
int SaveSessionHandles(MCONTACT *pSession, bool bNewSession);
void CALLBACK LaunchSessions();
INT_PTR CloseCurrentSession(WPARAM, LPARAM);
INT_PTR LoadLastSession(WPARAM wparam, LPARAM lparam);
INT_PTR OpenSessionsManagerWindow(WPARAM, LPARAM);
INT_PTR SaveUserSessionHandles(WPARAM, LPARAM);
extern MCONTACT session_list_recovered[255];
extern MCONTACT session_list[255];
extern HWND g_hDlg, g_hSDlg;
extern int g_ses_limit;
extern bool g_bLastSessionPresent;
extern bool g_bExclHidden;
extern bool g_bWarnOnHidden;
extern bool g_bOtherWarnings;
extern bool g_bCrashRecovery;
extern bool g_bIncompletedSave;
#define TIMERID_SHOW 11
#define TIMERID_LOAD 12