int OnWindowEvent(WPARAM wParam, LPARAM lParam) { MessageWindowEventData* msgEvData = (MessageWindowEventData*)lParam; switch (msgEvData->uType) { case MSG_WINDOW_EVT_OPENING: g_hWindows.insert(PVOID(msgEvData->hContact)); SetSrmmIcon(msgEvData->hContact); break; case MSG_WINDOW_EVT_CLOSE: if (db_get_b(NULL, ModuleName, "SweepOnClose", 0)) { CriteriaStruct Criteria; Criteria.keep = KeepCriteria(db_get_b(NULL, ModuleName, "StartupShutdownKeep", 0)); Criteria.time = BuildCriteria(db_get_b(NULL, ModuleName, "StartupShutdownOlder", 0)); SweepHistoryFromContact(msgEvData->hContact, Criteria, TRUE); } for (int i = g_hWindows.getCount() - 1; i >= 0; i--) if (g_hWindows[i] == PVOID(msgEvData->hContact)) g_hWindows.remove(i); break; } return 0; }
int OnWindowEvent(WPARAM, LPARAM lParam) { MessageWindowEventData* msgEvData = (MessageWindowEventData*)lParam; switch (msgEvData->uType) { case MSG_WINDOW_EVT_OPENING: g_hWindows.insert(PVOID(msgEvData->hContact)); SetSrmmIcon(msgEvData->hContact); break; case MSG_WINDOW_EVT_CLOSE: if (db_get_b(NULL, ModuleName, "SweepOnClose", 0)) { CriteriaStruct Criteria; Criteria.keep = KeepCriteria(db_get_b(NULL, ModuleName, "StartupShutdownKeep", 0)); Criteria.time = BuildCriteria(db_get_b(NULL, ModuleName, "StartupShutdownOlder", 0)); SweepHistoryFromContact(msgEvData->hContact, Criteria, TRUE); } auto T = g_hWindows.rev_iter(); for (auto &it : T) if (it == PVOID(msgEvData->hContact)) g_hWindows.remove(T.indexOf(&it)); break; } return 0; }
// shutdown action void ShutdownAction(void) { CriteriaStruct Criteria; Criteria.keep = KeepCriteria(db_get_b(NULL, ModuleName, "StartupShutdownKeep", 0)); Criteria.time = BuildCriteria(db_get_b(NULL, ModuleName, "StartupShutdownOlder", 0)); SweepHistoryFromContact(NULL, Criteria, FALSE); // sweep system history, keepunread==0 for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) SweepHistoryFromContact(hContact, Criteria, TRUE); // sweep contact history, keepunread==1 }
// shutdown action void ShutdownAction(void) { CriteriaStruct Criteria; Criteria.keep = KeepCriteria(db_get_b(NULL, ModuleName, "StartupShutdownKeep", 0)); Criteria.time = BuildCriteria(db_get_b(NULL, ModuleName, "StartupShutdownOlder", 0)); SweepHistoryFromContact(NULL, Criteria, FALSE); // sweep system history, keepunread==0 for (auto &hContact : Contacts()) SweepHistoryFromContact(hContact, Criteria, TRUE); // sweep contact history, keepunread==1 }
int OnWindowEvent(WPARAM wParam, LPARAM lParam) { MessageWindowEventData* msgEvData = (MessageWindowEventData*)lParam; if (msgEvData->uType == MSG_WINDOW_EVT_CLOSE && db_get_b(NULL, ModuleName, "SweepOnClose", 0)) { CriteriaStruct Criteria; Criteria.keep = KeepCriteria(db_get_b(NULL, ModuleName, "StartupShutdownKeep", 0)); Criteria.time = BuildCriteria(db_get_b(NULL, ModuleName, "StartupShutdownOlder", 0)); SweepHistoryFromContact(msgEvData->hContact, Criteria, TRUE); } return 0; }