可通过编程控制使用 MicrosoftVisualC++ MicrosoftOutlook。 本文演示如何创建联系人、 约会, 创建和发送邮件使用 Microsoft Outlook 从 VisualC++ 对象模型。
请按照下列步骤以生成并运行示例:
- 启动 VisualC++ 和创建新 MFC EXE 基于对话框的应用程序。
- 将按钮添加到对话框。
- 双击要为其, 添加处理按钮然后添加以下代码:
// Start Outlook.
// If it is already running, you'll use the same instance...
_Application olApp;
COleException e;
if(!olApp.CreateDispatch("Outlook.Application", &e)) {
CString str;
str.Format("CreateDispatch() failed w/error 0x%08lx", e.m_sc);
AfxMessageBox(str, MB_SETFOREGROUND);
return;
}
// Logon. Doesn't hurt if you are already running and logged on...
NameSpace olNs(olApp.GetNamespace("MAPI"));
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
olNs.Logon(covOptional, covOptional, covOptional, covOptional);
// Create and open a new contact
_ContactItem olItem(olApp.CreateItem(2));
// Setup Contact information...
olItem.SetFullName("James Smith");
COleDateTime bdDate;
bdDate.SetDate(1975, 9, 15);
olItem.SetBirthday(bdDate);
olItem.SetCompanyName("Microsoft");
olItem.SetHomeTelephoneNumber("704-555-8888");
olItem.SetEmail1Address("someone@microsoft.com");
olItem.SetJobTitle("Developer");
olItem.SetHomeAddress("111 Main St./nCharlotte, NC 28226");
// Save Contact
olItem.Save();
// Create a new appointment
_AppointmentItem olAppt(olApp.CreateItem(1));
// Schedule it for two minutes from now...
COleDateTime apptDate = COleDateTime::GetCurrentTime();
olAppt.SetStart((DATE)apptDate + DATE(2.0/(24.0*60.0)));
// Set other appointment info...
olAppt.SetDuration(60);
olAppt.SetSubject("Meeting to discuss plans...");
olAppt.SetBody("Meeting with James to discuss plans.");
olAppt.SetLocation("Home Office");
olAppt.SetReminderMinutesBeforeStart(1);
olAppt.SetReminderSet(TRUE);
// Save Appointment
olAppt.Save();
// Prepare a new mail message
_MailItem olMail(olApp.CreateItem(0));
olMail.SetTo("someone@microsoft.com");
olMail.SetSubject("About our meeting...");
olMail.SetBody(
"Hi James,/n/n"
"/tI'll see you in two minutes for our meeting!/n/n"
"Btw: I've added you to my contact list!");
// Send the message!
olMail.Send();
AfxMessageBox("All done.", MB_SETFOREGROUND);
olNs.Logoff();
- 弹出类向导 (控制 - W) 单击 " 选项卡, 自动化并 AddClass@@ 菜单下选择 " 从类型库 "。
- 对话框附带向上、 定位到 Outlook 安装, 目录并选择 Outlook 类型库中 (参见表下面) (参见下表)。 选择它找到, 所有项, 单击 " 确定 " 以有类向导生成 MFC 包装类对所有的这些:
收起该表格
Outlook 版本 类型库 97 msoutl8.olb 98 msoutl85.olb 2000 msoutl9.olb 2002 msoutl.olb 2003 msoutl.olb - 添加以下实现了按钮处理程序之前:
#include "msoutl85.h" // for Outlook 2000 use msoutl9.h
// for Outlook 2002 & Outlook 2003 use msoutl.h
// Ole-initialization class.
class OleInitClass {
public:
OleInitClass() {
OleInitialize(NULL);
}
~OleInitClass() {
OleUninitialize();
}
};
// This global class calls OleInitialize() at
// application startup, and calls OleUninitialize()
// at application exit...
OleInitClass g_OleInitClass;
- 编译并运行项目。 一旦它已经运行, 应有新联系人命名 JamesSmith, 计划在两分钟用来显示一分钟, 和邮件发送给 someone @ microsoft.com 提醒的约会。 还, 定期事件已添加有关 Outlook 日历来提醒您该当天因为添加为联系人生日 (9 / 15),
自动化 Microsoft Outlook 2000, 2002, 和 2003
<script type="text/javascript"> loadTOCNode(2, 'moreinformation'); </script> 您可以使用前面介绍使自动化 Outlook 2000, 2002, 和 2003 以一个小示例代码。 Outlook 97 Namespace 类成员已更改为 Outlook 2000, 2002, 和 2003 中 _Namespace。 要使用以上代码用于自动化 Outlook 2000, 2002 和 2003 更改此行:
Namespace olNS(olApp.GetNames("MAPI"));
到:
_Namespace olNS(olApp.GetNames("MAPI"));
是 Outlook 2002 和 Outlook 2003 新病毒保护功能导致对话框起来 advising 程序使用地址列表, 并从计算机发送电子邮件。 它要求您批准以继续。