CMsnProto::~CMsnProto() { MSN_FreeGroups(); Threads_Uninit(); AvatarQueue_Uninit(); Lists_Uninit(); #ifdef OBSOLETE DestroyHookableEvent(hMSNNudge); P2pSessions_Uninit(); MsgQueue_Uninit(); #endif CachedMsg_Uninit(); Netlib_CloseHandle(m_hNetlibUser); Netlib_CloseHandle(hNetlibUserHttps); mir_free(mailsoundname); mir_free(alertsoundname); for (int i = 0; i < MSN_NUM_MODES; i++) mir_free(msnModeMsgs[i]); mir_free(msnLastStatusMsg); mir_free(msnPreviousUUX); mir_free(msnExternalIP); mir_free(msnRegistration); mir_free(abCacheKey); mir_free(sharingCacheKey); mir_free(storageCacheKey); mir_free(m_DisplayNameCache); FreeAuthTokens(); }
CMsnProto::~CMsnProto() { MsnRemoveMainMenus(); DestroyHookableEvent(hMSNNudge); MSN_FreeGroups(); Threads_Uninit(); MsgQueue_Uninit(); Lists_Uninit(); P2pSessions_Uninit(); CachedMsg_Uninit(); Netlib_CloseHandle(hNetlibUser); Netlib_CloseHandle(hNetlibUserHttps); mir_free(mailsoundname); mir_free(alertsoundname); mir_free(m_tszUserName); mir_free(m_szModuleName); mir_free(m_szProtoName); for (int i=0; i < MSN_NUM_MODES; i++) mir_free(msnModeMsgs[i]); mir_free(msnLastStatusMsg); mir_free(msnPreviousUUX); mir_free(msnExternalIP); mir_free(abCacheKey); mir_free(sharingCacheKey); mir_free(storageCacheKey); FreeAuthTokens(); }
void CMsnProto::MSN_GoOffline(void) { if (m_iStatus == ID_STATUS_OFFLINE) return; msnLoggedIn = false; if (mStatusMsgTS) ForkThread(&CMsnProto::msn_storeProfileThread, NULL); mir_free(msnPreviousUUX); msnPreviousUUX = NULL; msnSearchId = NULL; if (!Miranda_Terminated()) MSN_EnableMenuItems(false); MSN_FreeGroups(); MsgQueue_Clear(); clearCachedMsg(); if (!Miranda_Terminated()) { int msnOldStatus = m_iStatus; m_iStatus = m_iDesiredStatus = ID_STATUS_OFFLINE; ProtoBroadcastAck(NULL, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)msnOldStatus, ID_STATUS_OFFLINE); isIdle = false; int count = -1; for (;;) { MsnContact *msc = Lists_GetNext(count); if (msc == NULL) break; if (ID_STATUS_OFFLINE != getWord(msc->hContact, "Status", ID_STATUS_OFFLINE)) { setWord(msc->hContact, "Status", ID_STATUS_OFFLINE); setDword(msc->hContact, "IdleTS", 0); } } } }