소년포비의 세계정복!!

[.NET CF] PocketOutlook API 초 간단 예제 본문

윈도우폰 세상/Windows Phone

[.NET CF] PocketOutlook API 초 간단 예제

소년포비 2009. 9. 27. 14:13
최근에 TodoList 관리툴로 일정을 관리하고 있었다.
그런데 이것이 PDA에 연결되면 참 좋을텐데~ 라는 생각이 들었다.

물론 Outlook을 일정관리가 되기야 하겠지만, Outlook은 무료가 아니다.
MS Office를 구매하면 거기에 들어 있으니. 당연히 무료가 아니다.

현재는 TodoList를 중심으로하는 일정관리툴인 LifeManager(국산)를 사용하고 있다.
이 툴은 mdb 파일을 사용하는데 적당히 mdb파일에 접근한 뒤에
정보를 추출해서 넣어 볼까 생각중이다.

좀 더 원대하다고 말한다면 다음 캘린더를 연동해서 동작하게 하는것이다.
구글 캘린더가 있지 않느냐? 라고 말한다면,
난 되도록이면 국산을 사용한다는 주의이기 때문에 국산을 타겟으로 했다.

물론 Open-API도 없으니, 다음 캘린디에서 정보를 꺼낼 수 있을지는 의문이다.
하지만 목표가 그렇기는 하다.

우선 간단하게 소스를 보자.
  1. ApplicationClass outlookApp = null;   
  2.   
  3. IFolder contactsFolder = null;   
  4. IFolder tasksFolder = null;   
  5. IFolder calendarFolder = null;   
  6.   
  7.   
  8. // Create an instance of the PocketOutlook application object and log on   
  9. outlookApp = new PocketOutlook.ApplicationClass();   
  10. outlookApp.Logon(0);   
  11.   
  12.   
  13. // Get the contacts, tasks, and calendar folders.   
  14.   
  15. contactsFolder = outlookApp.GetDefaultFolder(OlDefaultFolders.olFolderContacts);   
  16.   
  17. tasksFolder = outlookApp.GetDefaultFolder(OlDefaultFolders.olFolderTasks);   
  18.   
  19. calendarFolder = outlookApp.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);  


위와 같은 방법으로 연락처, 할일, 일정관리의 정보에 접근할 수 있다.
응? 근데 ApplcationClass라던지, IFolder라는것은 본적이 없다.

없는것이 맞다. 아직 참조에 추가해 주지 않았기 때문이다.
솔루션 탐색기의 참조에서, 참조 추가를 눌러서 다음을 추가 한다.
Microsoft.WindowsMobile.PocketOutlook
뭐. 귀찮다면 아래의 dll파일을 다운받아서 참조로 추가하고 그냥 써도 된다.


내가 관심이 있어 하는 부분은 저 중에서 일정관리 부분이다.
약속을 추가하는 예제를 보도록 하자.
  1. addSchedule("category-1""subject-1""body-1", DateTime.Now.AddDays(-2), DateTime.Now.AddDays(-1), true"location-1", OlBusyStatus.olBusy, OlSensitivity.olNormal);   
  2.   
  3.   
  4. private void addSchedule(   
  5.     String category, String subject, String body,    
  6.     DateTime startDateTime, DateTime endDateTime, Boolean isAllDay,   
  7.     String location, OlBusyStatus status, OlSensitivity sensitivity   
  8.     ) {   
  9.   
  10.     IAppointment newAppointment = (IAppointment)calendarFolder.Items.Add();   
  11.   
  12.     newAppointment.Categories = category;   
  13.     newAppointment.Subject = subject;   
  14.     newAppointment.Body = body;   
  15.   
  16.     newAppointment.Start = startDateTime;   
  17.     newAppointment.End = endDateTime;   
  18.     newAppointment.AllDayEvent = isAllDay;   
  19.   
  20.     newAppointment.Location = location;   
  21.     newAppointment.BusyStatus = status;   
  22.     newAppointment.Sensitivity = sensitivity;   
  23.        
  24.   
  25.     newAppointment.Save();   
  26.        
  27. }  


간단하다.
위와 같이 처리를 해 주면 일정이 추가 된다.
물론 할일(Tasks)을 추가하는것도 어렵지 않다.


이 예제는 이미 MSDN에 올라와 있는 예제이다.

예제 페이지 : http://msdn.microsoft.com/ko-kr/library/ms181010(VS.80).aspx
다운로드 : http://go.microsoft.com/fwlink?linkid=46902 ComInteropPocketOfficeObjectModelSample.zip
( 다운로드 링크는 .NET Framework SDK 2.0의 전체 예제이다. )

MSDN이 설치된 사람은 다음의 주소를 사용하여 msdn에서 접속해 보자.
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.ko/dv_fxsamples/html/642d5603-f4d5-4151-9173-a5cecf2296ac.htm