<div class="content" name="Introduction" uuid="55a85e82-203b-4736-a809-2ce19e879307"><p>The IManagedObject Interface Protocol provides
interoperability support for the <a href="d8eaf696-8591-48a2-9aac-4880847e3632#gt_854253ea-e95f-40bb-9e99-cf5b1298db20" data-linktype="relative-path">common language runtime (CLR)</a>.
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 <a href="d8eaf696-8591-48a2-9aac-4880847e3632#gt_8bb43a65-7a8c-4585-a7ed-23044772f8ca" data-linktype="relative-path">objects</a>
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 <a href="8f38e58a-d9eb-4d33-984d-24522e01559c" data-linktype="relative-path">IManagedObject</a> 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>