从 Outlook 导入联系人
Posted scanp002
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从 Outlook 导入联系人相关的知识,希望对你有一定的参考价值。
使用 Office/Outlook 对象模型从 Outlook 导入项目的示例源代码。
介绍
Outlook 已成为个人信息管理软件中的事实上的标准。几乎每个人都使用这个软件来管理他们的需求。需要以编程方式操作存储在 Outlook 中的信息。微软为此提供了 Outlook 对象模型。仔细查看 MSDN 上的示例会发现几乎所有示例都在 Visual Basic 中。(不那么差;-)) C++ 程序员应该为此做什么?由于 Outlook 对象模型是 COM 接口的集合,因此任何符合 COM 的语言都可以使用它。此示例可以从 Outlook 中的任何联系人文件夹导入联系人。
要在 C++ 中使用 Office/Outlook 对象,需要导入以下文件...
C++ //For Office XP #import "E:\\Program Files\\Common Files\\Microsoft Shared\\Office10\\mso.dll" named_guids #import "E:\\Microsoft Office\\Office10\\MSOUTL.OLB" \\ no_namespace exclude("_IRecipientControl", "_DRecipientControl");
C++ //For Office 2000 #import "E:\\Program Files\\Common Files\\Microsoft Shared\\Office10\\mso.dll" named_guids #import "E:\\Microsoft Office\\Office10\\MSOUTL.OLB" \\ no_namespace exclude("_IRecipientControl", "_DRecipientControl");
C++ //Code to import Contacts... _ApplicationPtr pApp; _ItemsPtr pItems; MAPIFolderPtr pFolder; _ContactItemPtr pContact; HRESULT hr; try { hr=pApp.CreateInstance(__uuidof(Application)); if (FAILED(hr)) { MessageBox("Unable to instantiate Outlook.", "Outlook Error",MB_OK); return; } if (m_Option.GetCheck()) //default outlook contacts folder { pFolder=pApp->GetNamespace(_bstr_t("MAPI"))-> GetDefaultFolder(olFolderContacts); if (pFolder==NULL) { MessageBox("Could not find default contacts folder.", "Outlook Error"); return; } } else //display folder selection window { pFolder=pApp->GetNamespace(_bstr_t("MAPI"))->PickFolder(); if (pFolder==NULL) return; if (pFolder->GetDefaultItemType()!=olContactItem) { MessageBox("Select folder is not a Contact folder.", "Outlook Contacts"); return; } } pItems=pFolder->GetItems(); if (pItems==NULL) { MessageBox("Unabel to get Contact Items.", "Outlook Error"); return; } pContact=pItems->GetFirst(); m_ContactList.ResetContent(); while(1) { if (pContact==NULL) break; CString strTemp; strTemp=(char *)pContact->GetFullName(); strTemp=strTemp + "<"; strTemp=strTemp + (char *)pContact->GetEmail1Address(); strTemp=strTemp + ">"; m_ContactList.AddString(strTemp); pContact=pItems->GetNext(); } } catch(_com_error &e) { MessageBox((char *)e.Description()); }
此示例导入联系人信息,但稍加修改即可使其也从 Outlook 导入任何其他信息。这包括约会项目、电子邮件、便笺、任务等。例如,要从日历文件夹中导入约会项目,只需要创建一个 _AppointmentItemPtr 智能指针类的对象,而不是 _ContactItemPtr。
Outlook是最常用的邮箱收发软件,首次安装配置Outlook请参阅博文《首次安装配置Outlook流程详解》。
安装配置过程中可能会出现无法与Microsoft exchange连接的问题,其解决方法参见博文《完美解决“Outlook 与 Microsoft Exchange 的连接不可用,Outlook 必须联机或已连接才能完成此操作”的问题》
以上是关于从 Outlook 导入联系人的主要内容,如果未能解决你的问题,请参考以下文章