<Type Name="IntPtr" FullName="System.IntPtr" FullNameSP="System_IntPtr" Maintainer="ecma">
  <TypeSignature Language="ILASM" Value=".class public sequential sealed serializable IntPtr extends System.ValueType" />
  <TypeSignature Language="C#" Value="public struct IntPtr : System.Runtime.Serialization.ISerializable" />
  <MemberOfLibrary>RuntimeInfrastructure</MemberOfLibrary>
  <AssemblyInfo>
    <AssemblyName>mscorlib</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadingSafetyStatement>This type is safe for multithreaded operations. </ThreadingSafetyStatement>
  <Base>
    <BaseTypeName>System.ValueType</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>System.Runtime.Serialization.ISerializable</InterfaceName>
    </Interface>
  </Interfaces>
  <Docs>
    <summary>
      <para> An implementation-specific type that is used to represent
      a pointer or a handle.</para>
    </summary>
    <remarks>
      <para> The <see cref="T:System.IntPtr" /> type is designed
   to be an implementation-sized pointer. An instance of this type is expected to be
   the size of a <see langword="native int" /> for the current implementation.</para>
      <para>For more information on the <see langword="native int" /> type, see Partition II of
   the CLI Specification.</para>
      <block subset="none" type="note">
        <para>The <see cref="T:System.IntPtr" /> type provides CLS-compliant
   pointer functionality.</para>
        <para>
          <see cref="T:System.IntPtr" /> instances can also be used
to hold handles.</para>
        <para> The <see cref="T:System.IntPtr" /> type is
CLS-compliant while the <see cref="T:System.UIntPtr" />
type is not. The <see cref="T:System.UIntPtr" /> type is provided mostly to
maintain architectural symmetry with the <see cref="T:System.IntPtr" />
type.</para>
      </block>
    </remarks>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor(int32 value)" />
      <MemberSignature Language="C#" Value="public IntPtr (int i32);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="i32" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="i32">A <see cref="T:System.Int32" /> containing a pointer or a handle.</param>
        <summary>
          <para> Constructs a new <see cref="T:System.IntPtr" /> structure using the specified <see cref="T:System.Int32" /> containing a pointer
 or a handle.</para>
        </summary>
        <remarks>To be added.</remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor(int64 value)" />
      <MemberSignature Language="C#" Value="public IntPtr (long i64);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="i64" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="i64">A <see cref="T:System.Int64" /> containing a pointer or a handle.</param>
        <summary>
          <para> Constructs a new <see cref="T:System.IntPtr" /> structure using the specified <see cref="T:System.Int64" /> containing a pointer
 or a handle.</para>
        </summary>
        <remarks>To be added.</remarks>
        <exception cref="T:System.OverflowException">The current platform is a 32-bit platform and the value of the current instance is greater than <see cref="F:System.Int32.MaxValue" /> or less than <see cref="F:System.Int32.MinValue" />.</exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public IntPtr (void* ptr);" />
      <MemberType>Constructor</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.CLSCompliant(false)</AttributeName>
        </Attribute>
      </Attributes>
      <Parameters>
        <Parameter Name="ptr" Type="System.Void*" />
      </Parameters>
      <Docs>
        <param name="ptr">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Equals">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual bool Equals(object obj)" />
      <MemberSignature Language="C#" Value="public override bool Equals (object o);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="o" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="obj">The <see cref="T:System.Object" /> to compare to the current instance.</param>
        <param name="o">To be added.</param>
        <summary>
          <para>Determines whether the current instance and the specified
      <see cref="T:System.Object" /> represent the same type and
      value.</para>
        </summary>
        <returns>
          <para>
            <see langword="true" /> if <paramref name="obj" /> is a <see cref="T:System.IntPtr" /> instance and has the same value as the current
   instance. If <paramref name="obj" /> is a null reference or is not an instance of
<see cref="T:System.IntPtr" />, returns <see langword="false" />.</para>
        </returns>
        <remarks>
          <para>
            <block subset="none" type="note">The method overrides
      <see cref="M:System.Object.Equals(System.Object)" qualify="true" />.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetHashCode">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual int32 GetHashCode()" />
      <MemberSignature Language="C#" Value="public override int GetHashCode ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Generates a hash code for the current instance.</para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Int32" /> containing the hash code for the current instance.</para>
        </returns>
        <remarks>
          <para>
            <block subset="none" type="note">The algorithm
 used to generate the hash code is unspecified.</block>
          </para>
          <para>
            <block subset="none" type="note">This method
 overrides <see cref="M:System.Object.GetHashCode" qualify="true" />.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="op_Equality">
      <MemberSignature Language="ILASM" Value=".method public hidebysig static specialname bool op_Equality(valuetype System.IntPtr value1, valuetype System.IntPtr value2)" />
      <MemberSignature Language="C#" Value="public static bool op_Equality (IntPtr a, IntPtr b);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="a" Type="System.IntPtr" />
        <Parameter Name="b" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="value1">The first <see cref="T:System.IntPtr" /> to compare for equality.</param>
        <param name="value2">The second <see cref="T:System.IntPtr" /> to compare for equality.</param>
        <param name="a">To be added.</param>
        <param name="b">To be added.</param>
        <summary>
          <para>Determines whether the two specified instances of <see cref="T:System.IntPtr" /> represent the same value.</para>
        </summary>
        <returns>
          <para>
            <see langword="true" /> if
<paramref name="value1" /> represents the same value as <paramref name="value2" />; otherwise, <see langword="false" />.</para>
        </returns>
        <remarks>To be added.</remarks>
        <altmember cref="M:System.IntPtr.Equals(System.Object)" />
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="op_Explicit">
      <MemberSignature Language="C#" Value="public static IntPtr op_Explicit (int value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.IntPtr</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="op_Explicit">
      <MemberSignature Language="C#" Value="public static IntPtr op_Explicit (long value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.IntPtr</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="op_Explicit">
      <MemberSignature Language="C#" Value="public static void* op_Explicit (IntPtr value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void*</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="op_Explicit">
      <MemberSignature Language="C#" Value="public static long op_Explicit (IntPtr value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="op_Explicit">
      <MemberSignature Language="C#" Value="public static int op_Explicit (IntPtr value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="op_Explicit">
      <MemberSignature Language="C#" Value="public static IntPtr op_Explicit (void* value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.IntPtr</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Void*" />
      </Parameters>
      <Docs>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="op_Inequality">
      <MemberSignature Language="ILASM" Value=".method public hidebysig static specialname bool op_Inequality(valuetype System.IntPtr value1, valuetype System.IntPtr value2)" />
      <MemberSignature Language="C#" Value="public static bool op_Inequality (IntPtr a, IntPtr b);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="a" Type="System.IntPtr" />
        <Parameter Name="b" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="value1">The first <see cref="T:System.IntPtr" /> to compare for inequality.</param>
        <param name="value2">The second <see cref="T:System.IntPtr" /> to compare for inequality.</param>
        <param name="a">To be added.</param>
        <param name="b">To be added.</param>
        <summary>
          <para>Determines whether the two specified instances of <see cref="T:System.IntPtr" /> represent different values.</para>
        </summary>
        <returns>
          <para>
            <see langword="true" /> if
<paramref name="value1" /> represents a different value than <paramref name="value2" />; otherwise, <see langword="false" />.</para>
        </returns>
        <remarks>To be added.</remarks>
        <altmember cref="M:System.IntPtr.Equals(System.Object)" />
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Size">
      <MemberSignature Language="ILASM" Value=".property int32 Size { public hidebysig static specialname int32 get_Size() }" />
      <MemberSignature Language="C#" Value="public static int Size { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>4</MemberValue>
      <Docs>
        <summary>
          <para> Gets the size in bytes of a pointer or a handle for the current implementation.</para>
        </summary>
        <value>
          <para> A <see cref="T:System.Int32" /> containing the 
   number of bytes of a pointer or handle for the current implementation. The value
   of this property is equal to the number of bytes contained by the <see langword="native int" /> type
   in
   the current implementation. </para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>For more information on the 
   <see langword="native int" /> type, see
      Partition II of the CLI Specification.</para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="System.Runtime.Serialization.ISerializable.GetObjectData">
      <MemberSignature Language="C#" Value="void ISerializable.GetObjectData (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="info" Type="System.Runtime.Serialization.SerializationInfo" />
        <Parameter Name="context" Type="System.Runtime.Serialization.StreamingContext" />
      </Parameters>
      <Docs>
        <param name="info">To be added.</param>
        <param name="context">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ToInt32">
      <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 ToInt32()" />
      <MemberSignature Language="C#" Value="public int ToInt32 ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Converts the value of the current instance to a
   <see cref="T:System.Int32" />.</para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Int32" /> containing 
   the same value as the current instance.</para>
        </returns>
        <remarks>To be added.</remarks>
        <exception cref="T:System.OverflowException">The current platform is not a 32-bit platform and the value of the current instance is greater than <see cref="F:System.Int32.MaxValue" /> or less than <see cref="F:System.Int32.MinValue" />.</exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="ToInt64">
      <MemberSignature Language="ILASM" Value=".method public hidebysig instance int64 ToInt64()" />
      <MemberSignature Language="C#" Value="public long ToInt64 ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Converts the value of the current instance to a
 <see cref="T:System.Int64" />.</para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Int64" /> containing the
 same value as the current instance.</para>
        </returns>
        <remarks>To be added.</remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="ToPointer">
      <MemberSignature Language="ILASM" Value=".method public hidebysig instance class System.Void* ToPointer()" />
      <MemberSignature Language="C#" Value="public void* ToPointer ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void*</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Converts the value of the current instance to a pointer
      to <see langword="void" />.</para>
        </summary>
        <returns>
          <para>A pointer to <see langword="void" />. </para>
        </returns>
        <remarks>
          <para>This member is not CLS-compliant. For a CLS-compliant alternative, use 
   <see cref="M:System.IntPtr.ToInt32" />.</para>
          <para>
            <block subset="none" type="note">A pointer to <see langword="void" /> points to memory
   containing data of an unspecified type.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="ToString">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual string ToString()" />
      <MemberSignature Language="C#" Value="public override string ToString ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Returns a <see cref="T:System.String" />
representation of the value of the current instance.</para>
        </summary>
        <returns>
          <para>A <see cref="T:System.String" /> representation of the current instance.</para>
        </returns>
        <remarks>
          <block subset="none" type="note">
            <para> If <see cref="P:System.IntPtr.Size" /> for the current instance is
      4, <see cref="M:System.IntPtr.ToString" qualify="true" />
      is equivalent to <see cref="M:System.Int32.ToString" qualify="true" />();
      otherwise, this method is equivalent to <see cref="M:System.Int64.ToString" qualify="true" />().</para>
            <para>This method overrides <see cref="M:System.Object.ToString" qualify="true" />.</para>
          </block>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Zero">
      <MemberSignature Language="ILASM" Value=".field public static initOnly valuetype System.IntPtr Zero" />
      <MemberSignature Language="C#" Value="public static readonly IntPtr Zero;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.IntPtr</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>0</MemberValue>
      <Docs>
        <summary>
          <para> Represents a pointer or handle that has been initialized as zero.</para>
        </summary>
        <remarks>
          <block subset="none" type="note">
            <para>The value of this field is not <see langword="null" />,
      but is instead a pointer which has been assigned the value zero. Use this
      field to efficiently determine whether an instance of <see cref="T:System.IntPtr" /> has been set to a value
      other than zero. For example, if <paramref name="ip" />
      is a <see cref="T:System.IntPtr" /> instance, using <paramref name="ip != IntPtr.Zero" /> is more
      efficient than <paramref name="ip != new IntPtr(0)" /> to test if <paramref name=" ip" />
      has been set to a value other than zero. </para>
          </block>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
  </Members>
  <TypeExcluded>0</TypeExcluded>
  <Attributes>
    <Attribute>
      <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
    </Attribute>
  </Attributes>
</Type>
