Click here to Skip to main content
15,904,339 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
QuestionHow to Make ListBox flat and contured in Dialog? Pin
vgrigor7-Aug-03 23:59
vgrigor7-Aug-03 23:59 
GeneralCEdit update Pin
SLiDeR7-Aug-03 23:56
SLiDeR7-Aug-03 23:56 
GeneralRe: CEdit update Pin
David Crow8-Aug-03 5:43
David Crow8-Aug-03 5:43 
GeneralRe: CEdit update Pin
Anonymous8-Aug-03 7:39
Anonymous8-Aug-03 7:39 
Generalparsing emails Pin
ranjjj7-Aug-03 23:44
ranjjj7-Aug-03 23:44 
GeneralRe: parsing emails Pin
Vitali Halershtein7-Aug-03 23:56
Vitali Halershtein7-Aug-03 23:56 
GeneralRe: parsing emails Pin
Ryan Binns7-Aug-03 23:58
Ryan Binns7-Aug-03 23:58 
GeneralRe: parsing emails Pin
ranjjj10-Aug-03 18:30
ranjjj10-Aug-03 18:30 
is the code i got from msdn for parsing mails
i have doubts in it like..
in the readnextmsg function what is ..c:\\pst\\myprofile.pro???
what shud i use in my program instead of that..and in the findnext function..whats OL??what are the parameters to be passed to the functions...so that i can autmate the process of receiving mails in my inbox!
thank u
here's the code
#include
#include
#include
#include
#include
#include

//assumption::character interface being used.
//the Simple MAPI functions for reading messages can't
//log on implicitly and require an explicit session handle.

/*the client application defines needed variables and
logs on to get a session handle/*


ULONG ReadNextUnreadMsg()

{

ULONG err;
LHANDLE lhSession; // Need a session for MAPIFindNext.
CHAR rgchMsgID[513]; // Message IDs should be >= 512 CHARs + a null.
MapiMessage *lpMessage; // Used to get a message back from MAPIReadmail
int i, // Ubiquitous loop counter.
totalLength; // Number of characters printed on a line.
err = MAPILogon(0L, // ulUIParam; 0 always valid.
"c:\\pst\\myprofil.pro",// Shouldn't hardcode this.
NULL, // No password needed.
0L, // Use shared session.
0L, // Reserved; must be 0.
&lhSession); // Session handle.
if (err != SUCCESS_SUCCESS) // Make sure MAPILogon succeeded.
{
printf("Error: could not log on\r\n");
return(err);
}

//next..the client searches for the first unread message in the //default folder in the store - probably the user's Inbox.
//Since there might not be any unread messages in the folder, //the client first tests the return value from the MAPIFindNext
//function against MAPI_E_NO_MESSAGES before checking against //SUCCESS_SUCCESS. If the call is successful, the client will have
///a valid message identifier to use to retrieve the first// unread message

/* */

// find the first unread message


err = MAPIFindNext(lhSession, // explicit session required
0L, // always valid ulUIParam
NULL, // NULL specifies interpersonal messages
NULL, // seed message ID; NULL=get first message
MAPI_LONG_MSGID | // needed for 512 byte rgchMsgID.
MAPI_UNREAD_ONLY, // only get unread messages.
0L, // reserved; must be 0
rgchMsgID);// buffer to get back a message ID.

if (err == MAPI_E_NO_MESSAGES) // make sure a message was found
{
printf("No unread messages.\r\n");
return(err);
}
if (err != SUCCESS_SUCCESS) // make sure MAPIFindNext didn't fail
{
printf("Error while searching for messages\r\n");
return(err);
}


//The client can now be sure it is safe to retrieve the message. //However, it is a good idea to check the return value from
//the MAPIReadMail function. If the call fails, the memory pointed //to by the client's lpMessage pointer will not be accessible by
//the client. The client should not try to display a message at //that location. Note that this example sets the
//MAPI_SUPPRESS_ATTACH flag so the returned message will not
//have any attachments in it and Simple MAPI will not create any //temporary files for them.
// retrieve the message

err = MAPIReadMail(lhSession, // Explicit session required.
0L, // Always valid ulUIParam.
rgchMsgID, // The message found by MAPIFindNext.
MAPI_SUPPRESS_ATTACH, // TO DO: handle attachments.
0L, // Reserved; must be 0.
&lpMessage); // Location of the returned message.

if(err != SUCCESS_SUCCESS) // Make sure MAPIReadMail succeeded.
{
printf("Error retrieving message %s\r\n",rgchMsgID);
return(err);
}



//Now, the client can display the message. As expected, //it begins by displaying the addressing information attached
//to the message before displaying the subject line and message text.// When displaying the addressing information, it is best if you
//can display friendly names. However, since friendly names are
//not always available, you must verify that each recipient //structure's lpszName member points to a valid string,
// and that the string is not a null string.
// Display the sender's name or address; use the friendly name// if it is present.


if((lpMessage->lpOriginator->lpszName != NULL) &&
lpMessage->lpOriginator->lpszName[0] != '\0')
printf("From: %s\r\n",lpMessage->lpOriginator->lpszName);
else
printf("From: %s\r\n",lpMessage->lpOriginator->lpszAddress);




//Displaying the recipients' addresses is complicated by the //need to avoid breaking a recipient's name or address across
//two lines. This code can be further improved by differentiating //between recipients based on their ulRecipClass members so that
//they can be properly displayed as To, CC, or BCC recipients.// As this code shows, handling recipient data can be the most
// complex part of reading a message.// Display the recipients' names or addresses. To Do: enhance
// this code to separate the recipients into lists of MAPI_TO,// MAPI_CC, and MAPI_BCC recipients for separate display.


if(lpMessage->nRecipCount == 0)
printf("Warning: no recipients present for this message\r\n");
else
for(i = 0; i < lpMessage->nRecipCount; i++) // For each recipient...
{
// This code uses lstrlen to calculate the length of strings and
// to validate that the strings have some content, since the
// length is needed anyway. This avoids the more verbose checks
// as were done for lpMessage->lpOriginator->lpszName earlier.

// lpszT references a name or address; simplifies later code.
// length is the length of the name or address.

LPSTR lpszT = lpMessage->lpRecips[i]->lpszName;
int length = lstrlen(lpszT);

if(i == 0) // First recipient; need to do some initialization.
{
printf("Recipients:");
totalLength = 11; // since strlen("Recipients:") = 11.
}

// Decide whether to use the friendly name or the address.
if(length == 0)
length = lstrlen(lpszT=lpMessage->lpRecips[i]->lpszAddress);

// Verify that the line has room for this name or address. If
// not, print a CR LF pair to go to the next line.
if(totalLength + length + 1 > LINE_WIDTH)
{
printf("\r\n");
totalLength = 0;
}

printf(" %s",lpszT); // Finally, print the name or address.
totalLength += length + 1;// Maintain the line length.

// If there are more addresses, separate them with semicolons.

if(i < (lpMessage->nRecipCount - 1))
{
printf(";");
totalLength++;
}
}


//Now, the client displays the subject line and message text if //they are present. Note that the message text can be printed
//with a simple call to the C library function printf. Since //the message was read with the MAPI_SUPPRESS_ATTACH flag set,
//there will be no attachments in it.// Display the subject and message body. Not printing anything
//for the subject is fine, but something should always be //printed for the message body since it is the last thing
//that this function displays.

if(lpMessage->lpszSubject != NULL && // Standard validity check
lpMessage->lpszSubject[0] != '\0')
printf("Subject: %s\r\n",lpMessage->lpszSubject);
if(lpMessage->lpszNoteText != NULL && // Standard validity check
lpMessage->lpszNoteText[0] != '\0')
printf("Message Text:\r\n%s",lpMessage->lpszNoteText;
else
printf("No message text.\r\n");

//Finally, the client releases the memory that the MAPIReadMail //function allocated for the message, closes the session,
//and returns a successful return value.

MAPIFreeBuffer(lpMessage);
MAPILogoff(lhSession, // The session.
0L, // 0 always valid for ulUIParam.
0L, // No logoff flags.
0L); // Reserved; must be 0.
return SUCCESS_SUCCESS; // Inform the caller of our success.
} // End of ReadNextUnreadMsg



ranjani
GeneralRe: parsing emails Pin
Ryan Binns10-Aug-03 18:42
Ryan Binns10-Aug-03 18:42 
GeneralReading a word doc in C++ Pin
spicy_kid20007-Aug-03 23:40
spicy_kid20007-Aug-03 23:40 
GeneralRe: Reading a word doc in C++ Pin
Vitali Halershtein7-Aug-03 23:52
Vitali Halershtein7-Aug-03 23:52 
GeneralRe: Reading a word doc in C++ Pin
spicy_kid20008-Aug-03 0:27
spicy_kid20008-Aug-03 0:27 
GeneralRe: Reading a word doc in C++ Pin
Vitali Halershtein8-Aug-03 0:34
Vitali Halershtein8-Aug-03 0:34 
GeneralRe: Reading a word doc in C++ Pin
Ryan Binns8-Aug-03 0:39
Ryan Binns8-Aug-03 0:39 
GeneralRe: Reading a word doc in C++ Pin
Anonymous8-Aug-03 2:05
Anonymous8-Aug-03 2:05 
GeneralRe: Reading a word doc in C++ Pin
Ryan Binns8-Aug-03 2:10
Ryan Binns8-Aug-03 2:10 
GeneralRe: Reading a word doc in C++ Pin
David Crow8-Aug-03 7:25
David Crow8-Aug-03 7:25 
GeneralRe: Reading a word doc in C++ Pin
Ryan Binns8-Aug-03 17:07
Ryan Binns8-Aug-03 17:07 
GeneralRe: Reading a word doc in C++ Pin
Michael P Butler8-Aug-03 2:20
Michael P Butler8-Aug-03 2:20 
GeneralRe: Reading a word doc in C++ Pin
Ryan Binns8-Aug-03 4:56
Ryan Binns8-Aug-03 4:56 
Generalcalling the function specified by a string Pin
Jerome Conus7-Aug-03 23:12
Jerome Conus7-Aug-03 23:12 
GeneralRe: calling the function specified by a string Pin
John M. Drescher7-Aug-03 23:19
John M. Drescher7-Aug-03 23:19 
GeneralRe: calling the function specified by a string Pin
Jerome Conus7-Aug-03 23:24
Jerome Conus7-Aug-03 23:24 
GeneralRe: calling the function specified by a string Pin
John M. Drescher7-Aug-03 23:30
John M. Drescher7-Aug-03 23:30 
GeneralRe: calling the function specified by a string Pin
Vitali Halershtein7-Aug-03 23:36
Vitali Halershtein7-Aug-03 23:36 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.