CE MAPI執行個體講解(9)

來源:互聯網
上載者:User

    一直很想寫些關於Custom Form和Transport方面的東西,但是一方面這幾個部分東西比較多,一篇兩篇也講不完,另外一方面感覺用的人不多,寫了也是白寫,所以一直沒動手。最近有不少網友通過MAIL或者在CSDN論壇上都提到了Custom Form的用法(主要是想實現自己的類如MMS之類的用戶端),在這裡我簡單介紹一下Custom Form的使用方法,希望對有需要的朋友能有所協助。

       實際上在微軟的2005 SDK SAMPLE已經有了一個比較詳細的例子,叫做Customform,大家可以在SDK安裝目錄/wce500/Windows Mobile 5.0 Pocket PC SDK/Samples/CPP/Win32下面找到這個例子,所以詳細代碼我就略過了,我們從系統對一個Custom Form的調用邏輯講起。

1.       使用者點擊New或者某條已經存在的Message再編輯,tmail查閱對應的Message Type,比如是IPM.SMSText(SMS)還是IPM.Note(Outlook Email)或者還是其它,然後查詢註冊表Message Type註冊的位置(HKEY_CURRENT_USER/Software/Microsoft/Inbox/MsgTypes/IPM)找到正確的Form Dll.

2.       每個Form DLL必須實現FormFactoryEx輸出函數,tmail調用FormFactoryEx擷取IFormProviderEx對象。

3.       根據不同的需求,調用IFormProviderEx不同的函數,比如如果是建立或者再編輯一條Message,將會調用IFormProviderEx:: CreateComposeForm,如果是播放,則調用IFormProviderEx:: CreateReadForm,如果是擷取Message Icon,則調用IFormProviderEx:: GetMsgStatusIconIndex(可以參考《Pocket PC & Smartphone 簡訊表徵圖輕鬆換》一文)。

 

       要實現自己的編輯用戶端,如果才能讓使用者方便的建立你定義的Message呢?微軟的Sample裡面沒有涉及到這一點,它所走的流程是:

1.         通過IMailRuleClient截獲EMS訊息,把它的Message Type改成IPM.SMStext.SDKEMS。

2.         編輯或者播放時,因為類型是IPM.SMStext.SDKEMS,所以會調用自己一註冊的EMS Custom Form。

 

它略過了建立IPM.SMStext.SDKEMS類型Message的細節,那麼要如何建立這種類型的訊息呢?一種比較方便的方法就是在SMS基礎上添加EMS的支援,如:


 

這樣,一旦使用者點了EMS,那麼建立的就是自訂的EMS訊息,想要實現它其實很簡單,在Customform例子的基礎上,我們建立Message Type,比如叫IPM.EMS,替換掉Customform裡面所有的IPM.SMStext.SDKEMS,接下來我們只需要對註冊表做少許的修改:

以下是IPM.EMS類型的註冊:

[HKEY_CURRENT_USER/Software/Microsoft/Inbox/MsgTypes/IPM/EMS]

"GlyphInfo"=hex:/

      20,00,00,00,64,00,00,00,64,00,00,00,00,00,00,00,01,00,00,00,03,00,00,00,02,/

      00,00,00,00,00,00,00

"DLL"="EMSViewerForm.dll"

"Name"="EMS"

 

在[HKEY_LOCAL_MACHINE/Software/Microsoft/Inbox/Svc/SMS/MsgClasses]下面添加索引值:

"IPM.EMS"=dword:00000001

 

OK,我們單獨的EMS 編輯器就成功了。先簡單介紹到這裡,以後有空繼續,歡迎拍磚!

 

無聊客(blog.csdn.net/yzx0023)

2006-9-18

yzx0023@gmail.com

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.