MAPI
? ? ? ? 半年來(lái)一直在做Outlook插件的工作。個(gè)人覺(jué)得做MS Office的插件是吃力不討好,主要難點(diǎn)是:Office出現(xiàn)crash時(shí),原因很難定位(如果做一個(gè)獨(dú)立的應(yīng)用程序還好說(shuō),插件是以單個(gè)dll的形式來(lái)與Office交互的,出現(xiàn)core dump時(shí),即使生成個(gè)dump文件,也沒(méi)法找出崩潰的源頭。)。心想:如果MS Office是開(kāi)源的,那就好辦的多了。
? ? ? ? 除了插件crash的問(wèn)題排查困難之外,開(kāi)發(fā)的Outlook插件還用到了MAPI。這是另外一個(gè)讓人云里霧里的東西(主要是MS的實(shí)現(xiàn)不開(kāi)源,要是開(kāi)源,一切都會(huì)好起來(lái))。MAPI,全稱“Messaging Application Programming Interface”。下面是我在網(wǎng)上找到的說(shuō)的比較清楚的資料:
? ? ? ? 1)Jason Nelson. "Understanding how Outlook, CDO, MAPI and Providers work together"。一篇非常好的文章,講清楚了MAPI Application(MS Outlook屬于MAPI Application)、CDO、MAPI runtime、以及Service Provider之間的關(guān)系。可惜這樣的文章太少了。
? ? ? ? 2)Irving De La Cruz, Irving Thaler. "Inside MAPI"。一部非常好的書(shū)。雖然我沒(méi)有仔細(xì)看過(guò),但看了下目錄,里面講MAPI的架構(gòu)還是很清晰的,如果能結(jié)合上Outlook來(lái)舉例講解那就更好了。其實(shí)這是微軟出版的書(shū),發(fā)覺(jué)微軟老是干這樣的事:推出一些云里霧里的技術(shù),然后由其內(nèi)部工程師著書(shū)立說(shuō)慢慢透露其細(xì)枝末節(jié),吊人胃口,直到?jīng)]有胃口。
? ? ? ? 3)SGriffin的MAPI博客里也有很好的資料。他是MFCMAPI.exe的作者,同時(shí)也是微軟的MSDN上的著稿人。
? ? ? ? 4)MFCMAPI。這是一個(gè)MAPI Application的例子,有助于了解MAPI的使用。
? ? ? ? 越是深入微軟的技術(shù)(如COM、OLE、ATL、MAPI),就越有這樣的感受:要是這一切都是開(kāi)源的,那該多好啊;我們就能節(jié)省很多的時(shí)間,對(duì)著這些知識(shí)的隱晦角落時(shí)就不用玩你猜、你猜、你猜猜猜的游戲了。當(dāng)然,要是Windows操作系統(tǒng)有朝一日也開(kāi)源,那這些技術(shù)應(yīng)該會(huì)更受開(kāi)發(fā)者歡迎的。
總結(jié)
- 上一篇: 注销Apple ID账号
- 下一篇: mAPI(商户用API) v1.1发布