How to invoke .net components from com components,give the
sequence ?

Answer Posted / shyam

The common language runtime exposes COM objects through a
proxy called the runtime callable wrapper (RCW). Although
the RCW appears to be an ordinary object to .NET clients,
its primary function is to marshal calls between a .NET
client and a COM object.

The runtime creates exactly one RCW for each COM object,
regardless of the number of references that exist on that
object. As the following illustration shows, any number of
managed clients can hold a reference to the COM objects
that expose INew and INewer interfaces. The runtime
maintains a single RCW for each object.

Using metadata derived from a type library, the runtime
creates both the COM object being called and a wrapper for
that object. Each RCW maintains a cache of interface
pointers on the COM object it wraps and releases its
reference on the COM object when the RCW is no longer
needed. The runtime performs garbage collection on the RCW.

Among other activities, the RCW marshals data between
managed and unmanaged code, on behalf of the wrapped
object. Specifically, the RCW provides marshaling for
method arguments and method return values whenever the
client and server have different representations of the
data passed between them.

The standard wrapper enforces built-in marshaling rules.
For example, when a .NET client passes a String type as
part of an argument to a managed object, the wrapper
converts the string to a BSTR type. Should the COM object
return a BSTR to its managed caller, the caller receives a
string. Both the client and the server send and receive
data that is familiar to them. Other types require no
conversion. For instance, a standard wrapper will always
pass a 4-byte integer between managed and unmanaged code
without converting the type.

Is This Answer Correct ?    1 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What is reliability?

688


What is Pinvoke?

714


Is com+ dead?

693


What is com, com+ and dcom ?

809


What is manageability?

717


What is scalability?

639


Explain how to register com+ services?

3441


What is jit activation?

684


Define integrity?

3293


What happens when we instantiate a .NET component ?

4258


What is transaction atomicity?

663


What is availability?

3417


How to make a net component talk to a com component?

590


What are loosely coupled events?

3012


Explain the new three features of com+ services, which are not there in com (mts)?

3533