2017-05-30 15 views
0

我有Outlook插件(用Visual C++編寫)與DAV服務器(它充當Exchange的替代品)同步聯繫人。個人聯繫人很好,但我不知道如何模仿全球通訊簿(GAL)的行爲。如何以編程方式在Outlook中創建全局地址列表文件夾?

理想情況下,我想要創建GAL文件夾,用戶將能夠搜索就像Outlook連接到Exchange時發生的情況一樣。它有可能嗎?也許,使用Outlook對象模型是不可能的,但MAPI仍然可行?任何人都可以指引我如何開始正確的方向?

我需要支持Outlook 2007+,但只支持最新版本(對於此特定功能)也是一種選擇。

最初,我只是同步整個GAL文件夾,並使其成爲只讀,以便Outlook存儲整個GAL的本地副本。當GAL大小延伸到數千條記錄時,這不起作用。

+0

我不知道我理解你的問題 - 你有什麼問題?從GAL中檢索數千個條目的性能? –

+0

@DmitryStreblechenko一家大公司在他們的GAL(在DAV服務器上)有500K個條目。我不允許將DAV服務器中的所有500K條目加載到Outlook的本地數據庫中。在Exchange上,Outlook都不這樣做。每當我需要GAL的東西時,它就會讓我查詢Exchange服務器。它從來沒有得到所有的條目,但可以運行特定的搜索查詢等我需要做同樣的事情。在Outlook中創建GAL文件夾,以便當用戶在GAL搜索字段中輸入內容時,我會得到該字符串並將其發送給DAV服務器,該服務器將只返回符合給定條件的條目。 – Alex

回答

1

你不能那麼做 - 地址簿提供者可以告訴Outlook只允許搜索並且不顯示容器的實際內容。

除非您創建自己的MAPI存儲提供程序,否則無法使用Outlook文件夾執行此操作:那麼您可以根據用戶的操作返回所需的任何數據。

+0

嗯,這至少告訴我我需要創建一個MAPI提供程序。這是一個開始。謝謝! – Alex

+0

即使您對MAPI有任何經驗,創建提供商也遠不是快速下午的項目... –

+0

我明白。但現在我至少可以告訴客戶他們有哪些選擇。再次感謝。 – Alex

相關問題