Article ID: 195842
Article Last Modified on 6/6/2005
APPLIES TO
- Microsoft Collaboration Data Objects 1.1
- Microsoft Collaboration Data Objects 1.2
- Microsoft Collaboration Data Objects 1.21
This article was previously published under Q195842
SUMMARY
This article describes how to use Collaboration Data Objects (1.1, 1.2, 1.21) in C++ to change the default reply-recipient of an outgoing message.
MORE INFORMATION
The sample code below demonstrates how to setup two CDO (1.x) properties:
- CdoPR_REPLY_RECIPIENT_ENTRIES
- CdoPR_REPLY_RECIPIENT_NAMES
The sample code also demonstrates how to:
- Retrieve the first message in the Inbox
- Create a new message in the Outbox
- Set the default reply-recipient of the newly-created message to the sender of the first message you retrieved from the Inbox
Sample Code
#import "cdo.dll" no_namespace #include <stdio.h> #include <MAPIUTIL.H> int main(int argc, char* argv[]) { CoInitialize(NULL); try { // Uncomment one of the next two lines of code as appropriate: // Create a MAPI.Session pointer with CDO (1.1) // SessionPtr pSession("MAPI.Session"); // or Create a MAPI.Session pointer with CDO (1.2, 1.21) //_SessionPtr pSession("MAPI.Session"); _SessionPtr pSession("MAPI.Session"); pSession->Logon(); FolderPtr pInbox = pSession->Inbox; FolderPtr pOutbox = pSession->Outbox; // get the first message from the Inbox // MessagesPtr pMessages = pInbox->Messages; MessagePtr pMessage = pMessages->GetFirst(); // save the sender of this message for the later use AddressEntryPtr m_pReply = pMessage->Sender; // create a new message in the Outbox // MessagesPtr pNewMsgs = pOutbox->Messages; MessagePtr pNewMsg = pNewMsgs->Add(); // set some properties of the new message pNewMsg->Subject = "Set default reply-recipient"; pNewMsg->Text = "Set up two Cdo properties"; // Create a recipient RecipientsPtr pRecipients = pNewMsg->Recipients; RecipientPtr pRecipient = pRecipients->Add(); // Set properties of the new recipient pRecipient->Name = <your name goes here>; // a string // Type can be ActMsgTo, mapiTo or CdoTo for different CDO versions // They all have constant value of 1. pRecipient->Type = (long) mapiTo; // Resolve the recipient address pRecipient->Resolve(); // set the default reply-recipient of pNewMessage to be the // Sender of pMessage FieldsPtr pFields = pNewMsg->Fields; // set up a text string that matches the binary signature of the // FLATENTRYLIST structure char FlatLength[200] = ""; wsprintf(FlatLength, "%x", strlen((char *)(bstr_t)m_pReply->ID)/2 ); strcat(FlatLength, "000000"); strcat(FlatLength, (char *)(bstr_t)m_pReply->ID); char StructLength[200] = ""; wsprintf(StructLength, "%x", strlen(FlatLength)/2 ); char m_Entry[200] = ""; strcat(m_Entry, "01000000"); strcat(m_Entry, StructLength); strcat(m_Entry, "000000"); strcat(m_Entry, FlatLength); // Set the two pertinent properties pFields->Add((long)CdoPR_REPLY_RECIPIENT_ENTRIES, (variant_t)m_Entry); pFields->Add((long)CdoPR_REPLY_RECIPIENT_NAMES, m_pReply->Name); // send message with UI pNewMsg->Send(true, true); // or send message without UI // pNewMsg->Send(false, false); } catch (_com_error) {} CoUninitialize(); return 0; }
REFERENCES
For additional information, please see the following articles in the Microsoft Knowledge Base:
Keywords: kbhowto kbmsg kbfaq KB195842