Microsoft KB Archive/199870

= How To Send a Message by Outlook Object Model with VC++ =

Article ID: 199870

Article Last Modified on 7/13/2004

-

APPLIES TO


 * Microsoft Outlook 98 Standard Edition

-



This article was previously published under Q199870



SUMMARY
This article contains a Microsoft Visual C++ code sample that demonstrates how to send a message using Outlook Object Model.



MORE INFORMATION
Before compiling and running the following code, be sure to follow the instructions given wherever the text "TO DO:" is found.

// Change the path to msoutl85.olb if necessary. #import "C:\\Program Files\\MicrosoftOffice\\Office\\msoutl85.olb"\ no_namespace exclude("_IRecipientControl", "_DRecipientControl")

#include   #include 

void dump_com_error(_com_error &e) {   _tprintf(_T("Oops - hit an error!\n")); _tprintf(_T("\a\tCode = %08lx\n"), e.Error); _tprintf(_T("\a\tCode meaning = %s\n"), e.ErrorMessage); _bstr_t bstrSource(e.Source); _bstr_t bstrDescription(e.Description); _tprintf(_T("\a\tSource = %s\n"), (LPCTSTR) bstrSource); _tprintf(_T("\a\tDescription = %s\n"), (LPCTSTR) bstrDescription); }

// If this is placed in the scope of the smart pointers, they must be  // explicitly Release(d) before CoUninitialize is called. If any // reference count is non-zero, a protection fault will occur. struct StartOle { StartOle { CoInitialize(NULL); } ~StartOle { CoUninitialize; } } _inst_StartOle;

void main {    try {     NameSpacePtr pNameSpace; MAPIFolderPtr pOutbox; ItemsPtr pOutboxItems; _MailItemPtr pNewMail; AttachmentsPtr pAttachments; RecipientsPtr pRecipients; RecipientPtr pRecipient; // Create an Outlook.Application pointer. _ApplicationPtr pApp("Outlook.Application"); // Create NameSpace pointer. pNameSpace = pApp->GetNamespace(L"MAPI"); // If Outlook is not running, uncomment the next line. //pNameSpace->Logon("TO DO: Place profile name here");

// Create pointer to the Outbox Folder. pOutbox = pNameSpace->GetDefaultFolder(olFolderOutbox); // Create pointer to the Messages Collection. pOutboxItems = pOutbox->Items; // Create pointer to a new message. pNewMail = pOutboxItems->Add; // Set the Subject of the message. pNewMail->Subject = "New Mail Subject"; // Set the Text of the message. pNewMail->Body = "New mail body\n"; // Create pointer to the Attachments collection. pAttachments = pNewMail->Attachments; // Create new Attachment. pAttachments->Add("c:\\Autoexec.bat", (long)1, (long)(15000),                       "Autoexec.bat"); // Create pointer to Recipients Collection. pRecipients = pNewMail->Recipients; // Add recipient. pRecipients->Add("TO DO: Place email alias here"); // Resolve the recipient address. pRecipients ->ResolveAll;

// Send the message. pNewMail->Send; _tprintf(_T("Message sent\n")); // Logoff NameSpace. pNameSpace->Logoff; }

catch (_com_error &e) {      dump_com_error(e); }  }

Keywords: kbhowto kboutlookobj kbmsg KB199870

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.