[CF.Skills]Managed 程式碼中使用PocketOutlook輕鬆尋找和新增連絡人...

來源:互聯網
上載者:User
摘要:儘管我有時候對C#和這種基於架構的開發模式很厭倦,或者說.NET Framework多少讓人覺得有點束縛,但是有時候你不得不感歎它讓我們的開發變得多麼輕鬆。比如這裡提到的訪問Windows Mobile的連絡人。
keywords
POOM,windows mobile,PocketOutlook,Contacts,.NET Compact Framework,C#,C++

前兩天有朋友問及Poom的問題,其實SDK下面有一些例子已經寫得比較清楚了。在Windows Mobile 5以後,有了Microsoft.WindowsMobile.PocketOutlook 命名空間。這讓POOM編程變得十分簡單,同樣是擷取連絡人,我們將會看到使用VC++和VC#的不同。下面來看看使用Managed 程式碼C#是如何?的。
首先建立一個Outlook會話執行個體:OutlookSession mySession = new OutlookSession();

然後直接存取Contacts屬性:int index = 0;
Contact contact = new Contact();

//當前連絡人為零則添加一個連絡人
if (session.Contacts.Items.Count <= 0)
{
contact.FirstName = "Contact";
contact.LastName = "With Picture";
session.Contacts.Items.Add(contact);
}
else
{
 contact = session.Contacts.Items[0];
}
//接著你可以對你的Contact對象做你想作的事了

怎麼樣,簡單吧:-)

PS:關於Pocketoutlook的Contact可以參考SDK相應Sample目錄下的AddPictureToContact例子.

再來看看VS的C++Smart Device的project中,如何建立一個訪問PocketOutlook的會話:
1.首先要通過聲明一個IPOutlookApp 介面,並初始化IPOutlookApp指標(注意,這可不是C#,所以初始化是必不可少的):IPOutlookApp *pMyPoomApp = NULL;

2.接下來,你需要使用CoInitializeEx API初始化COM(注意:POOM API是基於COM的一組API):CoInitializeEx(Null,0);

3.使用CoCreateInstance API為你的應用程式建立一個COM對象:CoCreateInstance(CLSID_Application, NULL, CLSCTX_INPROC_SERVER,
                IID_IUnknown, (void **) &pUnknown);

4.接下來你需要使用QueryInterface方法將上面的COM對象和IPOutlookApp介面關聯起來 pUnknown->QueryInterface(IID_IPoutlookApp, (void **) &pMyPoomApp);

5.最後,你需要使用Logon()方法,登陸Pocket Outlook COM服務:pMyPoomApp->Logon(NULL);

6.使用建立好的pMyPoomApp取得連絡人檔案夾(預設編號為10):IFolder *pFolder;
pMyPoomApp->GetDefaultFolder(10, &pFolder);

7.聲明一個泛型PIM項集合,用來放置後來擷取的連絡人:IPOutlookItemCollection *pGenericItems;
pFolder->get_Items(&pGenericItems)

8.擷取連絡人IContact * pContact=NULL;
int len;
pGenericItems->get_Count(&len);
for (int i =0 ; i < len; i++) {
    pGenericItems->Item(i, &pContact);
}

 
- -!!!這個確實有點麻煩吧。可以參照WM5下的PoomMaster的例子,在這個目錄下:
??\Program Files\Windows Mobile 5.0 SDK\Samples\PocketPC\CPP\Win32\Poommaster

在以後的文章中,會詳細的介紹Pocketoutlook的編程。最後,得感謝.NET CF團隊的工作,是他們讓.NET 程式員的開發變得簡單高效:-)

Enjoy!

Freesc Huang
 黃季冬<fox23>@HUST
 2008/4/9

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.