-----------------------------------------------------------

New Message on MumbaiUserGroup

-----------------------------------------------------------
From: hereiam_always
Message 1 in Discussion

 
Runtime Callable Wrapper  <o:p></o:p> 
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.<o:p></o:p> 
The runtime creates exactly one RCW for each COM object, regardless of the 
number of references that exist on that object. The runtime maintains a single 
RCW per process for each object. If you create an RCW in one application domain 
or apartment, and then pass a reference to another application domain or 
apartment, a proxy to the first object will be used. As the following 
illustration shows, any number of managed clients can hold a reference to the 
COM objects that expose INew and INewer interfaces. <o:p></o:p> 
Accessing COM objects through the runtime callable wrapper<o:p></o:p> 
<v:shapetype id=_x0000_t75 stroked="f" filled="f" path="[EMAIL 
PROTECTED]@[EMAIL PROTECTED]@[EMAIL PROTECTED]@[EMAIL PROTECTED]@5xe" 
o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke 
joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 
0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod 
@2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 
pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 
2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 
0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 
0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" 
o:extrusionok="f"></v:path><o:lock aspectratio="t" 
v:ext="edit"></o:lock></v:shapetype><v:shape id=_x0000_i1025 style="WIDTH: 
315pt; HEIGHT: 94.5pt" type="#_x0000_t75" alt="RCW"><v:imagedata 
o:href="http://msdn2.microsoft.com/en-us/library/8bwh56xe.Local_-1147180468_rcw(en-US,VS.80).gif"
 
src="file:///C:\DOCUME~1\Nilesh\LOCALS~1\Temp\msohtml1\01\clip_image001gif"></v:imagedata></v:shape><o:p></o:p>
 
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.<o:p></o:p> 
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.<o:p></o:p> 
The standard wrapper enforces built-in marshaling rules. For example, when a 
.NET client passes a String type as part of an argument to an unmanaged 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.<o:p></o:p> 
<o:p> </o:p>

-----------------------------------------------------------

To stop getting this e-mail, or change how often it arrives, go to your E-mail 
Settings.
http://groups.msn.com/mumbaiusergroup/_emailsettings.msnw

Need help? If you've forgotten your password, please go to Passport Member 
Services.
http://groups.msn.com/_passportredir.msnw?ppmprop=help

For other questions or feedback, go to our Contact Us page.
http://groups.msn.com/contact

If you do not want to receive future e-mail from this MSN group, or if you 
received this message by mistake, please click the "Remove" link below. On the 
pre-addressed e-mail message that opens, simply click "Send". Your e-mail 
address will be deleted from this group's mailing list.
mailto:[EMAIL PROTECTED]

Reply via email to