MAPI

        半年來一直在做Outlook插件的工作。個人覺得做MS Office的插件是吃力不討好,主要難點是:Office出現crash時,原因很難定位(如果做一個獨立的應用程序還好說,插件是以單個dll的形式來與Office交互的,出現core dump時,即使生成個dump文件,也沒法找出崩潰的源頭。)。心想:如果MS Office是開源的,那就好辦的多了。

        除了插件crash的問題排查困難之外,開發的Outlook插件還用到了MAPI。這是另外一個讓人云裏霧裏的東西(主要是MS的實現不開源,要是開源,一切都會好起來)。MAPI,全稱“Messaging Application Programming Interface”。下面是我在網上找到的說的比較清楚的資料:

        1)Jason Nelson. "Understanding how Outlook, CDO, MAPI and Providers work together"。一篇非常好的文章,講清楚了MAPI Application(MS Outlook屬於MAPI Application)、CDO、MAPI runtime、以及Service Provider之間的關係。可惜這樣的文章太少了。

        2)Irving De La Cruz, Irving Thaler. "Inside MAPI"。一部非常好的書。雖然我沒有仔細看過,但看了下目錄,裏面講MAPI的架構還是很清晰的,如果能結合上Outlook來舉例講解那就更好了。其實這是微軟出版的書,發覺微軟老是幹這樣的事:推出一些雲裏霧裏的技術,然後由其內部工程師著書立說慢慢透露其細枝末節,吊人胃口,直到沒有胃口。

        3)SGriffin的MAPI博客裏也有很好的資料。他是MFCMAPI.exe的作者,同時也是微軟的MSDN上的著稿人。

        4)MFCMAPI。這是一個MAPI Application的例子,有助於瞭解MAPI的使用。

        越是深入微軟的技術(如COM、OLE、ATL、MAPI),就越有這樣的感受:要是這一切都是開源的,那該多好啊;我們就能節省很多的時間,對着這些知識的隱晦角落時就不用玩你猜、你猜、你猜猜猜的遊戲了。當然,要是Windows操作系統有朝一日也開源,那這些技術應該會更受開發者歡迎的。

發佈了34 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章