使用mfc(vs2005开发平台)开发outlook2010外接程序。有经验的高手来
如题,在网上找到了一篇相关的帖子,但是编译通过不了。。大家有别的方法制作吗?
需求:
基于对话框的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();}