在进行Outlook插件的开发的时候,不可避免的需要获取Application.Session等对象。但是当Outlook与Exchange没有进行连接时获取诸如CurrentUser、Sender等对象时会出现假死状态,为了解决此类问题,我们就需要在进行操作之前获取当前Outlook是否与Exchange正常连接。

方法如下:

public bool CheckExchangeOfflineThread()
{
     bool bResult = false;
     switch (Globals.ThisAddIn.Application.Session.ExchangeConnectionMode)
     {
     case Outlook.OlExchangeConnectionMode.olNoExchange:
          bResult = false;
          break;
     case Outlook.OlExchangeConnectionMode.olCachedOffline:
          bResult = false;
          break;
     case Outlook.OlExchangeConnectionMode.olOffline:
          bResult = false;
          break;
     case Outlook.OlExchangeConnectionMode.olCachedDisconnected:
          bResult = false;
          break;
     default:
          bResult = true;
          break;
     }
     return bResult;
}

通过以上方法即可获取当前Outlook与Exchange的连接状态。

Outlook开发交流群:365895439