MAPI Advise() call returns 0x8007000E (E_OUTOFMEMORY)

Article translations Article translations
Article ID: 269794 - View products that this article applies to.
This article was previously published under Q269794
Expand all | Collapse all

SYMPTOMS

When you call the Advise function about 7,800 to 7,900 times, the next Advise call may fail with the error 0x8007000E (E_OUTOFMEMORY).

CAUSE

Notifications, which are registered by calling Advise, use a shared memory space. By default the heap size is set as 0x100000. If the heap size is exceeded when registering a new notification, the E_OUTOFMEMORY error is returned.

This limit is system-wide; in other words, if you are running two programs that call Advise, the combined maximum for both programs should be less than 7,900.

WORKAROUND

You can configure the heap size to be as high as 0x800000 by setting the following registry keys:

HKLM\SOFTWARE\Microsoft\Windows Messaging Subsystem
Value Name: SharedMemMaxSize
Value Type: REG_DWORD
Value Data: 0x800000

HKLM\SOFTWARE\Microsoft\Windows Messaging Subsystem\Applications\<MyApp>
Value Name: SharedMemMaxSize
Value Type: REG_DWORD
Value Data: 0x800000

In this scenario, <MyApp> is the name of your application (without the .exe extension). For example, if your application is Mad.exe, enter MAD for the <MyApp> value.

Properties

Article ID: 269794 - Last Review: March 8, 2011 - Revision: 6.0
APPLIES TO
  • Microsoft Office Outlook 2007
  • Microsoft Exchange Server 5.5 Standard Edition
  • Microsoft Messaging Application Programming Interface
Keywords: 
kbmsg kbprb KB269794

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com