You'd be best served by reporting this to Microsoft via PSS.
----- Original Message -----
From: "Will Somervell" <[EMAIL PROTECTED]>
To: "Exchange Discussions" <[EMAIL PROTECTED]>
Sent: Friday, September 07, 2001 2:23 PM
Subject: CDO 1.2.1 memory leak, Using GetNext()
> I can't eliminate a memory leak : While looping through the Inbox
> Message list using GetFirst() .. GetNext()
>
> I'm developing a Visual C++ application on NT Workstation 4.0
>
> I tried using Purify to help debug this: it showed about a 500 byte leak
> in GetNext() for every extra message beyond the 1st one (i.e., I get no
> leaks when there's only 1 message in the inbox, but there seems to be a
> leak for every call to GetNext() ). The Task manager indicates a growth
> of about 4K for every pass through the Inbox.
> This is not acceptable for our operating conditions.
>
> I have a while (messages) loop embedded in a forever loop. I sleep a
> user-specified delay between every loop cycle.
>
> My purpose for the forever loop is to continuously monitor the inbox for
> messages which come from various sources at random times.
>
> I also tried the code from Knowledge base article Q171429 with the same
> result. They use essentially the same logic, except they don't have the
> forever loop. I close all the CDO objects, but do not logout or
> disconnect the MAPI session each pass. Maybe I should do this
> periodically?
> ==========================================================================
> A modified excerpt from the KB Q171429 article:
> ....
> for (;;)
> {
> // Create pointer to the Inbox Folder
> FolderPtr pFolder = pSession->Inbox;
>
> // Create pointer to the Messages Collection
> MessagesPtr pMessages = pFolder->Messages;
>
> // Acquire pointer and set properties of the MessageFilter
> MessageFilterPtr pMsgFilt = pMessages->Filter;
> pMsgFilt->Unread = (bool)TRUE;
>
> // Get the first Message object after filter is applied
> pAMessage = pMessages->GetFirst();
>
> // Process contents of Folder
> while (pAMessage != NULL)
> {
> // Display Properties
> wprintf (L"%s::",
> (const unsigned short *)
> pAMessage->Subject.bstrVal);
>
> // Get next Message
> pAMessage = NULL;
> pAMessage = pMessages->GetNext();
> }
>
> cout << endl << flush;
>
> // Destroy the reference to the Inbox, Messages Collection,
> // MessageFilter, and Message then reaquire them
> pFolder = NULL;
> pMessages = NULL;
> pMsgFilt = NULL;
> pAMessage = NULL;
>
> cout << "Iteration #" << ++i << endl << flush;
> Sleep (5000);
> }
> ....
> ==========================================================================
>
> Any ideas or insights would be greatly appreciated.
>
> Also, what's the syntax to set the TimeLast property in a MessageFilter,
> in C++? I don't believe this works:
> pMsgFltr->TimeLast = "12/25/00";
>
> Thanks for any help,
> Will
>
> _________________________________________________________________
> List posting FAQ: http://www.swinc.com/resource/exch_faq.htm
> Archives: http://www.swynk.com/sitesearch/search.asp
> To unsubscribe: mailto:[EMAIL PROTECTED]
> Exchange List admin: [EMAIL PROTECTED]
>
_________________________________________________________________
List posting FAQ: http://www.swinc.com/resource/exch_faq.htm
Archives: http://www.swynk.com/sitesearch/search.asp
To unsubscribe: mailto:[EMAIL PROTECTED]
Exchange List admin: [EMAIL PROTECTED]