使用mfc(vs2005开发平台)开发outlook2010外接程序。有经验的高手来
本帖最后由 kijl000 于 2011-01-20 19:33:17 编辑 如题,在网上找到了一篇相关的帖子,但是编译通过不了。。大家有别的方法制作吗?
需求:
基于对话框的mfc程序,能够实现写邮件,发件人,收件人,直接转到outlook2010中。网上的一段代码如下 是c#
void CFcarDeverDlg::OnBnClickedButtonSend()
{
// 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();
}