在这里,我正在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();
}
}
答案 0 :(得分:0)
是的,它是一个COM对象。 OOM将其表示为IUnknown
。它是IMAPISession
(源自IUnknown)。