2011-06-11 51 views
0

我必須從我的應用程序更新所有Outlook文件夾。 這是我的代碼,但它不起作用。如何使用C#更新所有Outlook(2003)文件夾

Outlook.Application app = null; 
Outlook.SyncObject _syncObj = null; 

while (OutlookNotFound) 
{ 
    i++; 
    try 
    { 
     app = Marshal.GetActiveObject("Outlook.Application") as Outlook.Application; 
     OutlookNotFound = false; 
    } 
    catch (System.Exception ex) 
    { 
     Thread.Sleep(1000); 
    } 
    finally 
    { 
     if (i > 10) 
     OutlookNotFound = false; 
    } 
} 

if (!OutlookNotFound) 
{ 
    //app.Session.GetDefaultFolder(Outlook.OlDefaultFolders.); 
    if (app != null) 
    { 
     for (Int32 j = 0; j < app.Session.SyncObjects.Count; j++) 
     { 
      _syncObj = app.Session.SyncObjects[1]; 
      _syncObj.SyncEnd += 
       new Outlook.SyncObjectEvents_SyncEndEventHandler(_syncObj_SyncEnd); 
     } 

     _syncObj.Start(); 
     //app.Session.SyncObjects.AppFolders.SyncEnd += 
     // new Outlook.SyncObjectEvents_SyncEndEventHandler(AppFolders_SyncEnd); 
     //app.Session.SyncObjects.AppFolders.Start(); 

     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 
+0

什麼具體不工作? – 2011-06-12 01:06:11

回答

0

這是一種嘗試「搶」活動的Outlook對象的常用方法......尤其是,如果沒有活動對象。更標準的方法是:

outlookApplication = new Application(); 
outlookNamespace = m_OutlookApplication.GetNamespace("mapi"); 

// If an outlook app is already open, then it will reuse that 
// session. Else it will perform a fresh logon. 
outlookNamespace.Logon(accountName, password, true, true); 
相關問題