PRB: MAPIInitialize from Console App can Block Windows Messages (171428)



The information in this article applies to:

  • Microsoft Extended Messaging Application Programming Interface (MAPI)

This article was previously published under Q171428

SYMPTOMS

Calling the MAPIInitialize() function from a console application can block windows messages to other Windows applications.

CAUSE

The console application has not provided a message loop to allow the Windows Operating System to address the requests of other Windows applications.

RESOLUTION

Write the code as a Windows application or alternately try using the PeekMessage loop API call.

For more information on implementing PeekMessage loop functionality, please see the following article(s) in the Microsoft Knowledge Base:

74042 How to Use PeekMessage() Correctly in Windows

STATUS

This behavior is by design.

MORE INFORMATION

Code sample that demonstrates issue follows:
    #include "mapix.h"
    #include "conio.h"

    void main()
    {
       HRESULT hrT = NOERROR;
       hrT = MAPIInitialize(NULL);
       getch();
    }
  1. Build the code sample above as a console application.
  2. Run the application.
  3. Switch to the Control Panel and launch Date/Time
  4. Change the date and click OK.
Step 4 should close Date/Time, but it remains open and blocked until the (MAPIInitialize) application is closed.

Modification Type:MinorLast Reviewed:8/18/2005
Keywords:kbcode kbMsg kbprb KB171428 kbAudDeveloper