MFC 如何自动化 Outlook 使用 VisualC ++

可通过编程控制使用 MicrosoftVisualC++ MicrosoftOutlook。 本文演示如何创建联系人、 约会, 创建和发送邮件使用 Microsoft Outlook 从 VisualC++ 对象模型。

 

请按照下列步骤以生成并运行示例:

  1. 启动 VisualC++ 和创建新 MFC EXE 基于对话框的应用程序。
  2. 将按钮添加到对话框。
  3. 双击要为其, 添加处理按钮然后添加以下代码:
       // 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();
  4. 弹出类向导 (控制 - W) 单击 " 选项卡, 自动化并 AddClass@@ 菜单下选择 " 从类型库 "。
  5. 对话框附带向上、 定位到 Outlook 安装, 目录并选择 Outlook 类型库中 (参见表下面) (参见下表)。 选择它找到, 所有项, 单击 " 确定 " 以有类向导生成 MFC 包装类对所有的这些:
    收起该表格 展开该表格
    Outlook 版本类型库
    97msoutl8.olb
    98msoutl85.olb
    2000msoutl9.olb
    2002msoutl.olb
    2003msoutl.olb
  6. 添加以下实现了按钮处理程序之前:
       #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;
  7. 编译并运行项目。 一旦它已经运行, 应有新联系人命名 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 程序使用地址列表, 并从计算机发送电子邮件。 它要求您批准以继续。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值