<div class="content"><p> </p><p>The IManagedObject Interface Protocol provides
interoperability support for the <span><a href="d8eaf696-8591-48a2-9aac-4880847e3632#gt_854253ea-e95f-40bb-9e99-cf5b1298db20" data-linktype="relative-path">common language runtime (CLR)</a></span>.
The common language runtime (CLR) is a virtual machine for the execution of
software. The IManagedObject interface provides a bridge between existing
computer systems and the virtual execution environment.</p><p>In particular, the CLR supports interoperability with the
Component Object Model (COM).<a id="Appendix_A_Target_1"></a><a aria-label="Product behavior note 1" href="920a4fc8-a4ab-4098-a965-b07ae3e1cc13#Appendix_A_1" data-linktype="relative-path">&lt;1&gt;</a> The CLR
supports exposing its own <span><a href="d8eaf696-8591-48a2-9aac-4880847e3632#gt_8bb43a65-7a8c-4585-a7ed-23044772f8ca" data-linktype="relative-path">objects</a></span> to COM for
use as native COM objects and supports consuming COM objects.</p><p>In order to determine whether a COM object that enters the
CLR is actually one of its own managed objects, the <span><a href="8f38e58a-d9eb-4d33-984d-24522e01559c" data-linktype="relative-path">IManagedObject</a></span>
interface was created to allow for the CLR to identify its own objects. The
IManagedObject Interface Protocol mechanism is detailed in this specification.</p><p>Sections 1.5, 1.8, 1.9, 2, and 3 of this specification are
normative. All other sections and examples in this specification are informative.</p></div>