PC Review Forums Newsgroups Microsoft Outlook Microsoft Outlook VBA Programming Collaboration Data Objects - [E_OUTOFMEMORY(8007000E)] CDO1.2.1, also use Redemption.

Reply

Collaboration Data Objects - [E_OUTOFMEMORY(8007000E)] CDO1.2.1, also use Redemption.

 
Thread Tools Rate Thread
Old 17-02-2004, 01:26 PM   #1
=?Utf-8?B?Um9nZXI=?=
Guest
 
Posts: n/a
Default Collaboration Data Objects - [E_OUTOFMEMORY(8007000E)] CDO1.2.1, also use Redemption.


CDO version 1.2.1 (installed from Office 2000 CD

I am writing a VC++ using CDO 1.2.1 and redemtion to each message in folders and produce RFC822 files. the applicaiton never finished all 1750 messages. It stopped on Sub Folder2 (around message#1650)

Now I am very sure the application raise error o
CurrentMsg = msgs->GetNext();

How can I resovle the problem.

--- Folder Structure ------

Inbox Folder (550 messages
- Sub Folder 1 (600 messages
- Sub Folder 2 (600 message


-- Part of source code -------

CDO121::FoldersPtr Folders = base_folder->GetFolders(
CDO121::MessagesPtr msgs
CDO121::MessagePtr CurrentMs

based_folder = base_folder->GetName();
msgs = base_folder->GetMessages()

Redemption::ISafeMailItemPtr sItem
hr = m_SafeMailItemFactory->CreateInstance(NULL, __uuidof(Redemption::ISafeMailItem), (void**)&sItem)

nTotalMsgCount = msgs->Count;

MsgCount = msgs->Count

nIdx =1
for (;

CurrentMsg = msgs->GetNext(); ===> APPLICAITON FAILS HERE!

hr = sItem->put_Item(CurrentMsg)
hr = sItem->raw_SaveAs(_bstr_t(MsgFile), _variant_t((long)Redemption:lRFC822));

if ( nIdx == MsgCount
break

nIdx ++




  Reply With Quote
Old 17-02-2004, 05:29 PM   #2
Dmitry Streblechenko \(MVP\)
Guest
 
Posts: n/a
Default Re: Collaboration Data Objects - [E_OUTOFMEMORY(8007000E)] CDO1.2.1, also use Redemption.

See my reply to in the "MAPI Session timeout" thread.

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool


"Roger" <anonymous@discussions.microsoft.com> wrote in message
news:3260E283-821E-410F-A752-5DC0C9746830@microsoft.com...
> CDO version 1.2.1 (installed from Office 2000 CD)
>
> I am writing a VC++ using CDO 1.2.1 and redemtion to each message in

folders and produce RFC822 files. the applicaiton never finished all 1750
messages. It stopped on Sub Folder2 (around message#1650).
>
> Now I am very sure the application raise error on
> CurrentMsg = msgs->GetNext();
>
>
> How can I resovle the problem.
>
>
> --- Folder Structure -------
>
> Inbox Folder (550 messages)
> - Sub Folder 1 (600 messages)
> - Sub Folder 2 (600 message)
>
>
>
> -- Part of source code --------
>
> CDO121::FoldersPtr Folders = base_folder->GetFolders()
> CDO121::MessagesPtr msgs;
> CDO121::MessagePtr CurrentMsg
>
> based_folder = base_folder->GetName();
> msgs = base_folder->GetMessages()
>
> Redemption::ISafeMailItemPtr sItem;
> hr = m_SafeMailItemFactory->CreateInstance(NULL,

__uuidof(Redemption::ISafeMailItem), (void**)&sItem);
>
> nTotalMsgCount = msgs->Count;
>
> MsgCount = msgs->Count
>
> nIdx =1;
> for (;
> {
> CurrentMsg = msgs->GetNext(); ===> APPLICAITON FAILS

HERE!!
>
> hr = sItem->put_Item(CurrentMsg);
> hr = sItem->raw_SaveAs(_bstr_t(MsgFile),

_variant_t((long)Redemption:lRFC822));
>
> if ( nIdx == MsgCount)
> break;
>
> nIdx ++;
>
> }
>
>
>



  Reply With Quote
Old 17-02-2004, 09:16 PM   #3
Dmitry Streblechenko \(MVP\)
Guest
 
Posts: n/a
Default Re: Collaboration Data Objects - [E_OUTOFMEMORY(8007000E)] CDO1.2.1, also use Redemption.

Since you are already using Redemption, try to create an instance of the
Redemption.MAPIFolder object, assign MAPIFolder.Item property to
base_folder, then use MAPIFolder.Items collection instead of the CDO Folder
object.
Since MAPIFolder.Items.Item() returns Redemption.MessageItem, you won't need
to use Redemption.SafeMailItem object.

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool


"Roger" <anonymous@discussions.microsoft.com> wrote in message
news:0AC5A019-8D5F-4ACF-8DD7-58886C8B0948@microsoft.com...
> Dmitry,
>
> I try to release CurrentMsg ( CurrentMsg->Release() inside the for loop.

It doesn't help at all.
>
> Here is how I declare CurrentMsg
>
> CDO121::MessagesPtr msgs;
> CDO121::MessagePtr CurrentMsg;



  Reply With Quote
Reply



Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off