void CBaseDialog::OnNotificationsOff() { HRESULT hRes = S_OK; if (m_ulBaseAdviseConnection && m_lpMapiObjects) { switch (m_ulBaseAdviseObjectType) { case MAPI_SESSION: { LPMAPISESSION lpMAPISession = m_lpMapiObjects->GetSession(); // do not release if (lpMAPISession) EC_MAPI(lpMAPISession->Unadvise(m_ulBaseAdviseConnection)); break; } case MAPI_STORE: { LPMDB lpMDB = m_lpMapiObjects->GetMDB(); // do not release if (lpMDB) EC_MAPI(lpMDB->Unadvise(m_ulBaseAdviseConnection)); break; } case MAPI_ADDRBOOK: { LPADRBOOK lpAB = m_lpMapiObjects->GetAddrBook(false); // do not release if (lpAB) EC_MAPI(lpAB->Unadvise(m_ulBaseAdviseConnection)); break; } } } if (m_lpBaseAdviseSink) m_lpBaseAdviseSink->Release(); m_lpBaseAdviseSink = NULL; m_ulBaseAdviseObjectType = NULL; m_ulBaseAdviseConnection = NULL; } // CBaseDialog::OnNotificationsOff