нужно ли выпускать MAPIOBJECT в объектной модели outlook? - PullRequest
0 голосов
/ 29 апреля 2019

здесь я запускаю отдельную задачу, используя погашение внутри плагина outlook.

Является ли mapi MAPIOBJECT com-объектом и нужно ли его выпускать следующим образом? что произойдет, если я выпущу объект MapI?

  public async Task SimpleTask(string entryId)
    {   
                 RDOMail rdoMail = null;
                 RDOSession rdoSession = null; 
                 try
                 {
                     var outlookApp = addinModule.OutlookApp;
                     var outlookNamespace = outlookApp.GetNamespace("MAPI");
                     var mapiObject = outlookNamespace.MAPIOBJECT;
                     rdoSession = RedemptionLoader.new_RDOSession();

                     if (rdoSession != null)
                     {
                         rdoSession.MAPIOBJECT = mapiObject;
                         bool loggedOn = rdoSession.LoggedOn;                     

                         if(!string.IsNullOrEmpty(entryId))
                         {
                             rdoMail = rdoSession.GetMessageFromID(entryId);
                             //...;
                             rdoMail.Save();
                         }
                     }
                 } 
                 catch (System.Exception ex)
                 {

                 }
                 finally
                 {
                     rdoMail.ReleaseComObject()
                     mapiObject.ReleaseComObject();
                     rdoSession.ReleaseComObject();
                     outlookNamespace.ReleaseComObject();
                 }            
    }

1 Ответ

0 голосов
/ 29 апреля 2019

Да, это COM-объект. ООМ представляет его как IUnknown. Это IMAPISession (получено из IUnknown).

...