﻿<?xml version="1.0" encoding="utf-8"?><Type Name="ClassInterfaceType" FullName="System.Runtime.InteropServices.ClassInterfaceType"><TypeSignature Maintainer="auto" Language="C#" Value="public enum ClassInterfaceType" /><TypeSignature Language="ILAsm" Value=".class public auto ansi serializable sealed ClassInterfaceType extends System.Enum" /><AssemblyInfo><AssemblyName>mscorlib</AssemblyName><AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement><Base><BaseTypeName>System.Enum</BaseTypeName></Base><Attributes><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName></Attribute></Attributes><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This enumeration is used in conjunction with the <see cref="T:System.Runtime.InteropServices.ClassInterfaceAttribute" /> attribute.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Identifies the type of class interface that is generated for a class.</para></summary></Docs><Members><Member MemberName="AutoDispatch"><MemberSignature Language="C#" Value="AutoDispatch" /><MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Runtime.InteropServices.ClassInterfaceType AutoDispatch = int32(1)" /><MemberType>Field</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.InteropServices.ClassInterfaceType</ReturnType></ReturnValue><Parameters /><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This is the default setting for <see cref="T:System.Runtime.InteropServices.ClassInterfaceAttribute" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Indicates that the class only supports late binding for COM clients. A dispinterface for the class is automatically exposed to COM clients on request. The type library produced by <format type="text/html"><a href="A487D61B-D166-467B-A7CA-D8B52FBFF42D">Tlbexp.exe (Type Library Exporter)</a></format> does not contain type information for the dispinterface in order to prevent clients from caching the DISPIDs of the interface. The dispinterface does not exhibit the versioning problems described in <see cref="T:System.Runtime.InteropServices.ClassInterfaceAttribute" /> because clients can only late-bind to the interface.</para></summary></Docs></Member><Member MemberName="AutoDual"><MemberSignature Language="C#" Value="AutoDual" /><MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Runtime.InteropServices.ClassInterfaceType AutoDual = int32(2)" /><MemberType>Field</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.InteropServices.ClassInterfaceType</ReturnType></ReturnValue><Parameters /><Docs><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Indicates that a dual class interface is automatically generated for the class and exposed to COM. Type information is produced for the class interface and published in the type library. Using AutoDual is strongly discouraged because of the versioning limitations described in <see cref="T:System.Runtime.InteropServices.ClassInterfaceAttribute" />.</para></summary></Docs></Member><Member MemberName="None"><MemberSignature Language="C#" Value="None" /><MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Runtime.InteropServices.ClassInterfaceType None = int32(0)" /><MemberType>Field</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.InteropServices.ClassInterfaceType</ReturnType></ReturnValue><Parameters /><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para><format type="text/html"><a href="a487d61b-d166-467b-a7ca-d8b52fbff42d">Tlbexp.exe (Type Library Exporter)</a></format> exposes the first public, COM-visible interface implemented by the class as the default interface of the coclass. Beginning with the .NET Framework version 2.0, you can specify the default interface exposed to COM by using the <see cref="T:System.Runtime.InteropServices.ComDefaultInterfaceAttribute" /> attribute. If the class implements no interfaces, the first public, COM-visible interface implemented by a base class becomes the default interface (starting with the most recently derived base class and working backward). Tlbexp.exe exposes _Object as the default interface if neither the class nor its base classes implement interfaces.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Indicates that no class interface is generated for the class. If no interfaces are implemented explicitly, the class can only provide late-bound access through the IDispatch interface. This is the recommended setting for <see cref="T:System.Runtime.InteropServices.ClassInterfaceAttribute" />. Using ClassInterfaceType.None is the only way to expose functionality through interfaces implemented explicitly by the class.</para></summary></Docs></Member></Members></Type>