﻿<?xml version="1.0" encoding="utf-8"?><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" /><TypeSignature Language="ILAsm" Value=".class public sequential ansi serializable sealed beforefieldinit native int extends System.ValueType implements class 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>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.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></Attributes><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="T:System.IntPtr" /> type is designed to be an integer whose size is platform-specific. That is, an instance of this type is expected to be 32-bits on 32-bit hardware and operating systems, and 64-bits on 64-bit hardware and operating systems.</para><para>The <see cref="T:System.IntPtr" /> type can be used by languages that support pointers, and as a common means of referring to data between languages that do and do not support pointers.</para><para><see cref="T:System.IntPtr" /> objects can also be used to hold handles. For example, instances of <see cref="T:System.IntPtr" /> are used extensively in the <see cref="T:System.IO.FileStream" /> class to hold file handles.</para><para>The <see cref="T:System.IntPtr" /> type is CLS-compliant, while the <see cref="T:System.UIntPtr" /> type is not. Only the <see cref="T:System.IntPtr" /> type is used in the common language runtime. The <see cref="T:System.UIntPtr" /> type is provided mostly to maintain architectural symmetry with the <see cref="T:System.IntPtr" /> type.</para><para>This type implements the <see cref="T:System.Runtime.Serialization.ISerializable" /> interface.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>A platform-specific type that is used to represent a pointer or a handle.</para></summary></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor(int32 value)" /><MemberSignature Language="C#" Value="public IntPtr (int value);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(int32 value) cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.MayCorruptInstance, System.Runtime.ConstrainedExecution.Cer.MayFail)</AttributeName></Attribute></Attributes><ReturnValue /><Parameters><Parameter Name="value" Type="System.Int32" /></Parameters><Docs><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of <see cref="T:System.IntPtr" /> using the specified 32-bit pointer or handle.</para></summary><param name="value"><attribution license="cc4" from="Microsoft" modified="false" />A pointer or handle contained in a 32-bit signed integer. </param></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 value);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(int64 value) cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.MayCorruptInstance, System.Runtime.ConstrainedExecution.Cer.MayFail)</AttributeName></Attribute></Attributes><ReturnValue /><Parameters><Parameter Name="value" Type="System.Int64" /></Parameters><Docs><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><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>An exception is only thrown if the value of <paramref name="value" /> requires more bits than the current platform supports.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of <see cref="T:System.IntPtr" /> using the specified 64-bit pointer.</para></summary><param name="value"><attribution license="cc4" from="Microsoft" modified="false" />A pointer or handle contained in a 64-bit signed integer. </param></Docs><Excluded>0</Excluded></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public IntPtr (void* value);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(void* value) cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.CLSCompliant(false)</AttributeName></Attribute><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.MayCorruptInstance, System.Runtime.ConstrainedExecution.Cer.MayFail)</AttributeName></Attribute></Attributes><Parameters><Parameter Name="value" Type="System.Void*" /></Parameters><Docs><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of <see cref="T:System.IntPtr" /> using the specified pointer to an unspecified type.</para></summary><param name="value"><attribution license="cc4" from="Microsoft" modified="false" />A pointer to an unspecified type. </param></Docs></Member><Member MemberName="Add"><MemberSignature Language="C#" Value="public static IntPtr Add (IntPtr pointer, int offset);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig native int Add(native int pointer, int32 offset) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.MayCorruptInstance, System.Runtime.ConstrainedExecution.Cer.MayFail)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.IntPtr</ReturnType></ReturnValue><Parameters><Parameter Name="pointer" Type="System.IntPtr" /><Parameter Name="offset" Type="System.Int32" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.IntPtr.Add(System.IntPtr,System.Int32)" /> method does not throw an exception if the result is too large to represent as a pointer on the specified platform. Instead, the addition operation is performed in an unchecked context.</para><para>Languages that do not support operator overloading or custom operators can use this method to add an offset to the value of a pointer.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Adds an offset to the value of a pointer.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A new pointer that reflects the addition of <paramref name="offset" /> to <paramref name="pointer" />.</para></returns><param name="pointer"><attribution license="cc4" from="Microsoft" modified="false" />The pointer to add the offset to.</param><param name="offset"><attribution license="cc4" from="Microsoft" modified="false" />The offset to add.</param></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);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool Equals(object obj) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="obj" Type="System.Object" /></Parameters><Docs><remarks><para><block subset="none" type="note">The method overrides
      <see cref="M:System.Object.Equals(System.Object)" qualify="true" />.</block></para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Returns a value indicating whether this instance is equal to a specified object.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>true if <paramref name="obj" /> is an instance of <see cref="T:System.IntPtr" /> and equals the value of this instance; otherwise, false.</para></returns><param name="obj"><attribution license="cc4" from="Microsoft" modified="false" />An object to compare with this instance or null. </param></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 ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetHashCode() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><Docs><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><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Returns the hash code for this instance.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A 32-bit signed integer hash code.</para></returns></Docs><Excluded>0</Excluded></Member><Member MemberName="op_Addition"><MemberSignature Language="C#" Value="public static IntPtr op_Addition (IntPtr pointer, int offset);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname native int op_Addition(native int pointer, int32 offset) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.MayCorruptInstance, System.Runtime.ConstrainedExecution.Cer.MayFail)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.IntPtr</ReturnType></ReturnValue><Parameters><Parameter Name="pointer" Type="System.IntPtr" /><Parameter Name="offset" Type="System.Int32" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.IntPtr.op_Addition(System.IntPtr,System.Int32)" /> method defines the addition operation for <see cref="T:System.IntPtr" /> objects. It enables code such as the following.</para><para>code reference: System.IntPtr.op_Addition#1</para><para>Languages that do not support custom operators can call the <see cref="M:System.IntPtr.Add(System.IntPtr,System.Int32)" /> method instead.</para><para>The addition operation does not throw an exception if the result is too large to represent as a pointer on the specified platform. Instead, it is performed in an unchecked context.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Adds an offset to the value of a pointer.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A new pointer that reflects the addition of <paramref name="offset" /> to <paramref name="pointer" />.</para></returns><param name="pointer"><attribution license="cc4" from="Microsoft" modified="false" />The pointer to add the offset to.</param><param name="offset"><attribution license="cc4" from="Microsoft" modified="false" />The offset to add.</param></Docs></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 value1, IntPtr value2);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname bool op_Equality(native int value1, native int value2) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="value1" Type="System.IntPtr" /><Parameter Name="value2" Type="System.IntPtr" /></Parameters><Docs><remarks>To be added.</remarks><altmember cref="M:System.IntPtr.Equals(System.Object)" /><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Determines whether two specified instances of <see cref="T:System.IntPtr" /> are equal.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>true if <paramref name="value1" /> equals <paramref name="value2" />; otherwise, false.</para></returns><param name="value1"><attribution license="cc4" from="Microsoft" modified="false" />The first pointer or handle to compare.</param><param name="value2"><attribution license="cc4" from="Microsoft" modified="false" />The second pointer or handle to compare.</param></Docs><Excluded>0</Excluded></Member><Member MemberName="op_Explicit"><MemberSignature Language="C#" Value="public static IntPtr op_Explicit (int value);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname native int op_Explicit(int32 value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.MayCorruptInstance, System.Runtime.ConstrainedExecution.Cer.MayFail)</AttributeName></Attribute></Attributes><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);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname native int op_Explicit(int64 value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.MayCorruptInstance, System.Runtime.ConstrainedExecution.Cer.MayFail)</AttributeName></Attribute></Attributes><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 int op_Explicit (IntPtr value);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname int32 op_Explicit(native int value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><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 long op_Explicit (IntPtr value);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname int64 op_Explicit(native int value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><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 void* op_Explicit (IntPtr value);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname void* op_Explicit(native int value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.CLSCompliant(false)</AttributeName></Attribute></Attributes><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 IntPtr op_Explicit (void* value);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname native int op_Explicit(void* value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.CLSCompliant(false)</AttributeName></Attribute><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.MayCorruptInstance, System.Runtime.ConstrainedExecution.Cer.MayFail)</AttributeName></Attribute></Attributes><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 value1, IntPtr value2);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname bool op_Inequality(native int value1, native int value2) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="value1" Type="System.IntPtr" /><Parameter Name="value2" Type="System.IntPtr" /></Parameters><Docs><remarks>To be added.</remarks><altmember cref="M:System.IntPtr.Equals(System.Object)" /><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Determines whether two specified instances of <see cref="T:System.IntPtr" /> are not equal.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>true if <paramref name="value1" /> does not equal <paramref name="value2" />; otherwise, false.</para></returns><param name="value1"><attribution license="cc4" from="Microsoft" modified="false" />The first pointer or handle to compare. </param><param name="value2"><attribution license="cc4" from="Microsoft" modified="false" />The second pointer or handle to compare. </param></Docs><Excluded>0</Excluded></Member><Member MemberName="op_Subtraction"><MemberSignature Language="C#" Value="public static IntPtr op_Subtraction (IntPtr pointer, int offset);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname native int op_Subtraction(native int pointer, int32 offset) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.MayCorruptInstance, System.Runtime.ConstrainedExecution.Cer.MayFail)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.IntPtr</ReturnType></ReturnValue><Parameters><Parameter Name="pointer" Type="System.IntPtr" /><Parameter Name="offset" Type="System.Int32" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.IntPtr.op_Subtraction(System.IntPtr,System.Int32)" /> method defines the subtraction operation for <see cref="T:System.IntPtr" /> objects. It enables code such as the following.</para><para>code reference: System.IntPtr.op_Addition#2</para><para>Languages that do not support custom operators can call the <see cref="M:System.IntPtr.Subtract(System.IntPtr,System.Int32)" /> method instead.</para><para>The subtraction operation does not throw an exception if the result is too small to represent as a pointer on the specified platform. Instead, it is performed in an unchecked context.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Subtracts an offset from the value of a pointer.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A new pointer that reflects the subtraction of <paramref name="offset" /> from <paramref name="pointer" />.</para></returns><param name="pointer"><attribution license="cc4" from="Microsoft" modified="false" />The pointer to subtract the offset from.</param><param name="offset"><attribution license="cc4" from="Microsoft" modified="false" />The offset to subtract.</param></Docs></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; }" /><MemberSignature Language="ILAsm" Value=".property int32 Size" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>get: System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><MemberValue>4</MemberValue><Docs><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><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets the size of this instance.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="Subtract"><MemberSignature Language="C#" Value="public static IntPtr Subtract (IntPtr pointer, int offset);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig native int Subtract(native int pointer, int32 offset) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.MayCorruptInstance, System.Runtime.ConstrainedExecution.Cer.MayFail)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.IntPtr</ReturnType></ReturnValue><Parameters><Parameter Name="pointer" Type="System.IntPtr" /><Parameter Name="offset" Type="System.Int32" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.IntPtr.Subtract(System.IntPtr,System.Int32)" /> method does not throw an exception if the result is too small to represent as a pointer on the specified platform. Instead, the subtraction operation is performed in an unchecked context.</para><para>Languages that do not support operator overloading or custom operators can use this method to subtract an offset from the value of a pointer.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Subtracts an offset from the value of a pointer.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A new pointer that reflects the subtraction of <paramref name="offset" /> from <paramref name="pointer" />.</para></returns><param name="pointer"><attribution license="cc4" from="Microsoft" modified="false" />The pointer to subtract the offset from.</param><param name="offset"><attribution license="cc4" from="Microsoft" modified="false" />The offset to subtract.</param></Docs></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);" /><MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.Runtime.Serialization.ISerializable.GetObjectData(class System.Runtime.Serialization.SerializationInfo info, valuetype System.Runtime.Serialization.StreamingContext context) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><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><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This  method populates the <paramref name="info" /> parameter with the value of the current <see cref="T:System.IntPtr" /> object.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo" /> object with the data needed to serialize the current <see cref="T:System.IntPtr" /> object.</para></summary><param name="info"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> object to populate with data. </param><param name="context"><attribution license="cc4" from="Microsoft" modified="false" />The destination for this serialization. (This parameter is not used; specify null.)</param></Docs></Member><Member MemberName="ToInt32"><MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 ToInt32()" /><MemberSignature Language="C#" Value="public int ToInt32 ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 ToInt32() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><Docs><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><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Converts the value of this instance to a 32-bit signed integer.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A 32-bit signed integer equal to the value of this instance.</para></returns></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 ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance int64 ToInt64() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Int64</ReturnType></ReturnValue><Parameters /><Docs><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Converts the value of this instance to a 64-bit signed integer.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A 64-bit signed integer equal to the value of this instance.</para></returns></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 ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance void* ToPointer() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.CLSCompliant(false)</AttributeName></Attribute><Attribute><AttributeName>System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Void*</ReturnType></ReturnValue><Parameters /><Docs><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><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Converts the value of this instance to a pointer to an unspecified type.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A pointer to <see cref="T:System.Void" />; that is, a pointer to memory containing data of an unspecified type.</para></returns></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 ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance string ToString() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Parameters /><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>If the value of the <see cref="P:System.IntPtr.Size" /> property for this instance is 4, then this method is equivalent to <see cref="M:System.Int32.ToString" />; otherwise, this method is equivalent to <see cref="M:System.Int64.ToString" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Converts the numeric value of the current <see cref="T:System.IntPtr" /> object to its equivalent string representation.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The string representation of the value of this instance.</para></returns></Docs><Excluded>0</Excluded></Member><Member MemberName="ToString"><MemberSignature Language="C#" Value="public string ToString (string format);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance string ToString(string format) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Parameters><Parameter Name="format" Type="System.String" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>If the <paramref name="format" /> parameter is null or an empty string (""), the return value is formatted with the general format specifier ("G"). For more information about numeric format specifiers, see the <format type="text/html"><a href="580e57eb-ac47-4ffd-bccd-3a1637c2f467">Standard Numeric Format Strings</a></format> topic. </para><para>The return value is formatted using the invariant culture. </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Converts the numeric value of the current <see cref="T:System.IntPtr" /> object to its equivalent string representation.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The string representation of the value of the current <see cref="T:System.IntPtr" /> object.</para></returns><param name="format"><attribution license="cc4" from="Microsoft" modified="false" />A format specification that governs how the current <see cref="T:System.IntPtr" /> object is converted. </param></Docs></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;" /><MemberSignature Language="ILAsm" Value=".field public static initonly native int Zero" /><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.IntPtr</ReturnType></ReturnValue><Parameters /><MemberValue>0</MemberValue><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The value of this field is not equivalent to null. Use this field to efficiently determine whether an instance of <see cref="T:System.IntPtr" /> has been set to a value other than zero.</para><para>For example, assume the variable, ip, is an instance of <see cref="T:System.IntPtr" />. You can determine if it has been set by comparing it to the value returned by a constructor, for example: " if ip != new IntPtr(0)... ". However, invoking a constructor to get an unintialized pointer is inefficient. It is better to code either " if ip != IntPtr.Zero... ", or " if !IntPtr.Zero.Equals(ip)... ".</para><para>When calling the Windows API from managed code, you can pass <see cref="F:System.IntPtr.Zero" /> instead of null if an argument is expected to be either a pointer or a null. For example, the following call to the Windows CreateFile function supplies <see cref="F:System.IntPtr.Zero" /> for the <paramref name="pSecurityAttributes" /> and <paramref name="hTemplateFile" /> argument values. </para><para>code reference: System.IntPtr.Zero#2</para><block subset="none" type="note"><para>Although <see cref="F:System.IntPtr.Zero" /> is equivalent to null for Windows API functions with parameters or return values that can be either pointers or null, <see cref="F:System.IntPtr.Zero" /> is not equivalent to null. Passing null to the IntPtr.Zero.Equals method always returns false. </para></block><para>You can also test for a null return value from Windows API function calls that return either a pointer or a null by comparing the returned value with <see cref="F:System.IntPtr.Zero" />. For example, the call to the GetWindow function in the following example tries to retrieve the handle of a non-existent window. If it were called from unmanaged code, the function would return null, but when it is called from managed code, it returns <see cref="F:System.IntPtr.Zero" />. </para><para>code reference: System.IntPtr.Zero#1</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>A read-only field that represents a pointer or handle that has been initialized to zero.</para></summary></Docs><Excluded>0</Excluded></Member></Members><TypeExcluded>0</TypeExcluded></Type>