[omniORB] Corba-COM bridge
David Hyde
davidh@cavendish.co.uk
Mon, 29 Jan 2001 08:29:32 -0000
If I understand you correctly what you are saying is that you are =
having
problems when a callback comes into your COM control from CORBA and you =
have
to pass it back to the front end as an event.
The problem is that apartment threaded objects have to fire events off =
their
main threads only and the CORBA call is entering your control on a =
seperate
thread. You have to marshall the object's reference using
CoMarshalInterThreadInterfaceInStream and then unmarshall it with
CoGetInterfaceAndReleaseStream when the event comes in. You then use =
the
unmarshalled pointer to fire the events. MSDN and VC++ newsgroups have
examples of doing this.
Regards
David
-----Original Message-----
From: T|r=F5" Roland [mailto:tororoland@freemail.hu]
Sent: Sunday, January 28, 2001 4:27 PM
To: omniorb-list@uk.research.att.com
Subject: [omniORB] Corba-COM bridge
hi=20
i use windows nt4 with visual c++6=20
i made a com dll that is called by a corba client and the=20
server is a vb application that is calling my dll with the=20
COM interface
the problem is if i call a service form my corba client the=20
dll gets the control and the corba service is running but=20
in the function witch is called my corba client is a Fire_
event /because i have to reach the vb side/ and at this=20
point the corba core is crasing=20
it is crashing in the giopServer.cc=20
at line 728
catch(...) {
if( omniORB::traceLevel > 1 ) {
omniORB::logger l;
l << "WARNING -- method \'" << operation() << "\'=20
raised an unexpected\n"
" exception (not a CORBA exception).\n";
}
CORBA::UNKNOWN ex(0, CORBA::COMPLETED_MAYBE);
CHECK_AND_MAYBE_MARSHALL_SYSTEM_EXCEPTION (UNKNOWN,ex);
}
anyone has an idea what can be the solutoin?