<Type Name="UIntPtr" FullName="System.UIntPtr" FullNameSP="System_UIntPtr" Maintainer="ecma">
  <TypeSignature Language="ILASM" Value=".class public sequential sealed serializable UIntPtr extends System.ValueType" />
  <TypeSignature Language="C#" Value="public struct UIntPtr : 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>
  <Attributes>
    <Attribute>
      <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
    </Attribute>
    <Attribute>
      <AttributeName>System.CLSCompliant(false)</AttributeName>
    </Attribute>
  </Attributes>
  <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.UIntPtr" /> 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 unsigned int" /> for the current
   implementation.</para>
      <para>
   For more information on the <see langword="native unsigned int" /> type, see Partition II of
   the CLI Specification.
</para>
      <block subset="none" type="note">
        <para>
          <see cref="T:System.UIntPtr" /> 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(unsigned int32 value)" />
      <MemberSignature Language="C#" Value="public UIntPtr (uint value);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="value" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="value">A <see cref="T:System.UInt32" /> containing a pointer or handle.</param>
        <summary>
          <para> Constructs a new <see cref="T:System.UIntPtr" /> structure using the
 specified <see cref="T:System.UInt32" /> 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(unsigned int64 value)" />
      <MemberSignature Language="C#" Value="public UIntPtr (ulong value);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="value" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="value">A <see cref="T:System.UInt64" /> containing a pointer or a handle.</param>
        <summary>
          <para> Constructs a new <see cref="T:System.UIntPtr" /> structure using the
 specified <see cref="T:System.UInt64" /> 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.UInt32.MaxValue" />.</exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public UIntPtr (void* value);" />
      <MemberType>Constructor</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.CLSCompliant(false)</AttributeName>
        </Attribute>
      </Attributes>
      <Parameters>
        <Parameter Name="value" Type="System.Void*" />
      </Parameters>
      <Docs>
        <param name="value">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 obj);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="obj" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="obj">The <see cref="T:System.Object" /> to compare to the current instance.</param>
        <param name="obj">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.UIntPtr" /> 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.UIntPtr" /> , 
 returns <see langword="false" />.</para>
          <see langword="" />
        </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.UIntPtr value1, valuetype System.UIntPtr value2)" />
      <MemberSignature Language="C#" Value="public static bool op_Equality (UIntPtr value1, UIntPtr value2);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value1" Type="System.UIntPtr" />
        <Parameter Name="value2" Type="System.UIntPtr" />
      </Parameters>
      <Docs>
        <param name="value1">The first <see cref="T:System.UIntPtr" /> to compare for equality.</param>
        <param name="value2">The second <see cref="T:System.UIntPtr" /> to compare for equality.</param>
        <param name="value2">To be added.</param>
        <summary>
          <para>Determines whether the two specified instances of <see cref="T:System.UIntPtr" /> 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.UIntPtr.Equals(System.Object)" />
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="op_Explicit">
      <MemberSignature Language="C#" Value="public static UIntPtr op_Explicit (uint value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UIntPtr</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.UInt32" />
      </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 UIntPtr op_Explicit (ulong value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UIntPtr</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.UInt64" />
      </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 ulong op_Explicit (UIntPtr value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.UIntPtr" />
      </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 uint op_Explicit (UIntPtr value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.UIntPtr" />
      </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 (UIntPtr value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void*</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.UIntPtr" />
      </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 UIntPtr op_Explicit (void* value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UIntPtr</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.UIntPtr value1, valuetype System.UIntPtr value2)" />
      <MemberSignature Language="C#" Value="public static bool op_Inequality (UIntPtr value1, UIntPtr value2);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value1" Type="System.UIntPtr" />
        <Parameter Name="value2" Type="System.UIntPtr" />
      </Parameters>
      <Docs>
        <param name="value1">The first <see cref="T:System.UIntPtr" /> to compare for inequality.</param>
        <param name="value2">The second <see cref="T:System.UIntPtr" /> to compare for inequality.</param>
        <param name="value2">To be added.</param>
        <summary>
          <para>Determines whether two specified instances of <see cref="T:System.UIntPtr" /> 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.UIntPtr.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 unsigned 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 unsigned 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="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>
            <block subset="none" type="note">A pointer to <see langword="void" />
points to memory containing data of an unspecified type.</block>
          </para>
          <para>This method is not CLS-compliant. For a CLS-compliant
   alternative use <see cref="M:System.IntPtr.ToPointer" />.</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.UIntPtr.Size" /> for the
      current instance is 4, <see cref="M:System.UIntPtr.ToString" qualify="true" /> is
      equivalent to <see cref="M:System.UInt32.ToString" qualify="true" />();
      otherwise, this method is equivalent to<see cref="M:System.UInt64.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="ToUInt32">
      <MemberSignature Language="ILASM" Value=".method public hidebysig instance unsigned int32 ToUInt32()" />
      <MemberSignature Language="C#" Value="public uint ToUInt32 ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Converts the value of the current instance to a <see cref="T:System.UInt32" />.</para>
        </summary>
        <returns>
          <para>A <see cref="T:System.UInt32" /> 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.UInt32.MaxValue" /> .</exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="ToUInt64">
      <MemberSignature Language="ILASM" Value=".method public hidebysig instance unsigned int64 ToUInt64()" />
      <MemberSignature Language="C#" Value="public ulong ToUInt64 ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt64</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Converts the value of the current instance to a <see cref="T:System.UInt64" />.</para>
        </summary>
        <returns>
          <para>A <see cref="T:System.UInt64" /> containing the 
   same value as the current instance.</para>
        </returns>
        <remarks>To be added.</remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Zero">
      <MemberSignature Language="ILASM" Value=".field public static initOnly valuetype System.UIntPtr Zero" />
      <MemberSignature Language="C#" Value="public static readonly UIntPtr Zero;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.UIntPtr</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.UIntPtr" /> has been set to a value other than zero. For example, if
   <paramref name="uip" /> is a <see cref="T:System.UIntPtr" /> instance, using <paramref name="uip != UIntPtr.Zero" /> is more
      efficient than <paramref name="uip != new UIntPtr(0)" /> to test if <paramref name="uip" /> has been set
      to a value other than zero. </para>
          </block>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
  </Members>
  <TypeExcluded>0</TypeExcluded>
</Type>
