Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Exception caused by MapiInitiaze in interop env?

0 views
Skip to first unread message

Varun Bansal

unread,
Sep 27, 2007, 8:09:45 PM9/27/07
to

Hello everyone,

I have a function CallerFunc( ) in a C# exe calling another function
MyFunc( ) from C++ dll. MyFunc( ) deserializes an XML request and
initializes Mapi using MapiInitialize. The first time call to MyFunc( ) is
successful and I can do all MAPI stuff successfully. However, at the second
call to MyFunc( ) from CallerFunc( ), I get an exception while deserializing
XML in MyFunc( ). Weird thing is that if I don't call MyFunc( ) from a C#
code but from a C++ test exe utility, there's never an exception. Also, if I
comment out MAPI portion of the code from MyFunc( ), there's never an
exception if called from C#. It appears that the exception is caused by
MapiInitialize in an interop environment. Any ideas?

Caller function in C#

CallerFunc( )
{
MyFunc( )
................
//some code here
................
MyFunc( ) ////Exception occurs if MyFunc is called second time
}


Called function in C++

void MyFunc( )
{
//XML deserialization ////Exception occurs here
MapiInitialize(NULL);
..........
//some code here
.........
MapiUnInitialize( );
return;
}


0 new messages