2011-06-11 3 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

구체적으로 작동하지 않는 것은 무엇입니까? –

답변

0

그것은 '잡아'활성 전망 개체 ...하려고하는 일반적인 접근 방식의 약간의 특히, 활성 객체가없는 경우. 보다 일반적인 접근 방식은 다음과 같은 효과를 내기위한 것입니다.

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); 
관련 문제