Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / IntPtr.cs / 1305376 / IntPtr.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: IntPtr ** ** ** Purpose: Platform independent integer ** ** ===========================================================*/ namespace System { using System; using System.Globalization; using System.Runtime; using System.Runtime.Serialization; using System.Runtime.CompilerServices; using System.Runtime.ConstrainedExecution; using System.Diagnostics.Contracts; [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public struct IntPtr : ISerializable { unsafe private void* m_value; // The compiler treats void* closest to uint hence explicit casts are required to preserve int behavior public static readonly IntPtr Zero; // fast way to compare IntPtr to (IntPtr)0 while IntPtr.Zero doesn't work due to slow statics access [System.Security.SecuritySafeCritical] // auto-generated [Pure] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] internal unsafe bool IsNull() { return (this.m_value == null); } [System.Security.SecuritySafeCritical] // auto-generated [ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)] #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public unsafe IntPtr(int value) { #if WIN32 m_value = (void *)value; #else m_value = (void *)(long)value; #endif } [System.Security.SecuritySafeCritical] // auto-generated [ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)] #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public unsafe IntPtr(long value) { #if WIN32 m_value = (void *)checked((int)value); #else m_value = (void *)value; #endif } [System.Security.SecurityCritical] // auto-generated [CLSCompliant(false)] [ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)] public unsafe IntPtr(void* value) { m_value = value; } [System.Security.SecurityCritical] // auto-generated private unsafe IntPtr(SerializationInfo info, StreamingContext context) { long l = info.GetInt64("value"); if (Size==4 && (l>Int32.MaxValue || l() != null); #if WIN32 return ((int)m_value).ToString(format, CultureInfo.InvariantCulture); #else return ((long)m_value).ToString(format, CultureInfo.InvariantCulture); #endif } [ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)] #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public static explicit operator IntPtr (int value) { return new IntPtr(value); } [ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)] #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public static explicit operator IntPtr (long value) { return new IntPtr(value); } [System.Security.SecurityCritical] // auto-generated [CLSCompliant(false), ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)] #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public static unsafe explicit operator IntPtr (void* value) { return new IntPtr(value); } [System.Security.SecuritySafeCritical] // auto-generated [CLSCompliant(false)] #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public static unsafe explicit operator void* (IntPtr value) { return value.ToPointer(); } [System.Security.SecuritySafeCritical] // auto-generated #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public unsafe static explicit operator int (IntPtr value) { #if WIN32 return (int)value.m_value; #else long l = (long)value.m_value; return checked((int)l); #endif } [System.Security.SecuritySafeCritical] // auto-generated #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public unsafe static explicit operator long (IntPtr value) { #if WIN32 return (long)(int)value.m_value; #else return (long)value.m_value; #endif } [System.Security.SecuritySafeCritical] // auto-generated [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public unsafe static bool operator == (IntPtr value1, IntPtr value2) { return value1.m_value == value2.m_value; } [System.Security.SecuritySafeCritical] // auto-generated [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public unsafe static bool operator != (IntPtr value1, IntPtr value2) { return value1.m_value != value2.m_value; } [System.Security.SecuritySafeCritical] // auto-generated [ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)] #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public static IntPtr Add(IntPtr pointer, int offset) { return pointer + offset; } [System.Security.SecuritySafeCritical] // auto-generated [ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)] #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public static IntPtr operator +(IntPtr pointer, int offset) { #if WIN32 return new IntPtr(pointer.ToInt32() + offset); #else return new IntPtr(pointer.ToInt64() + offset); #endif } [System.Security.SecuritySafeCritical] // auto-generated [ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)] #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public static IntPtr Subtract(IntPtr pointer, int offset) { return pointer - offset; } [System.Security.SecuritySafeCritical] // auto-generated [ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)] #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public static IntPtr operator -(IntPtr pointer, int offset) { #if WIN32 return new IntPtr(pointer.ToInt32() - offset); #else return new IntPtr(pointer.ToInt64() - offset); #endif } public static int Size { [Pure] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif get { #if WIN32 return 4; #else return 8; #endif } } [System.Security.SecuritySafeCritical] // auto-generated [CLSCompliant(false)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public unsafe void* ToPointer() { return m_value; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MemoryFailPoint.cs
- BoundPropertyEntry.cs
- LocationInfo.cs
- OpCopier.cs
- UserControlCodeDomTreeGenerator.cs
- SchemaTableColumn.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- CaseInsensitiveHashCodeProvider.cs
- HttpRawResponse.cs
- MachineKeySection.cs
- DiscoveryMessageSequence11.cs
- LogicalTreeHelper.cs
- ProgressBar.cs
- Registry.cs
- ClientRuntimeConfig.cs
- DataListItemEventArgs.cs
- StoragePropertyMapping.cs
- DefaultValueConverter.cs
- EventPrivateKey.cs
- ThrowHelper.cs
- HierarchicalDataSourceControl.cs
- Help.cs
- RectConverter.cs
- EFTableProvider.cs
- DetailsViewModeEventArgs.cs
- RemoveStoryboard.cs
- storepermission.cs
- ScrollChangedEventArgs.cs
- CommandDevice.cs
- XmlArrayItemAttribute.cs
- CheckedListBox.cs
- XsdBuilder.cs
- ComboBoxRenderer.cs
- PolygonHotSpot.cs
- VerificationAttribute.cs
- WorkflowInlining.cs
- HtmlPhoneCallAdapter.cs
- PointCollectionConverter.cs
- BinaryReader.cs
- ToolZone.cs
- Metadata.cs
- ReadOnlyDictionary.cs
- RegexMatch.cs
- CacheChildrenQuery.cs
- MetadataCollection.cs
- GeneralTransform3DGroup.cs
- XPathSelectionIterator.cs
- NullableConverter.cs
- WebPartCatalogCloseVerb.cs
- ContainerParaClient.cs
- PinnedBufferMemoryStream.cs
- Transform3D.cs
- CheckedListBox.cs
- EntryIndex.cs
- LayoutEditorPart.cs
- SemaphoreFullException.cs
- SocketAddress.cs
- MiniParameterInfo.cs
- ToolStripDesignerAvailabilityAttribute.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- CommandHelpers.cs
- ActivityValidator.cs
- ProfileService.cs
- ObjectContext.cs
- MsmqTransportElement.cs
- ConcurrentQueue.cs
- SafeNativeMethods.cs
- UpdateManifestForBrowserApplication.cs
- MenuCommands.cs
- SrgsGrammarCompiler.cs
- CompilerLocalReference.cs
- Condition.cs
- TextEditorCopyPaste.cs
- ContextMenu.cs
- InternalRelationshipCollection.cs
- ResXBuildProvider.cs
- InternalCache.cs
- TracedNativeMethods.cs
- HttpResponse.cs
- Geometry.cs
- ToolboxItemCollection.cs
- ServiceChannelFactory.cs
- DefaultMergeHelper.cs
- SafeThemeHandle.cs
- ITextView.cs
- BindingSource.cs
- FixedTextSelectionProcessor.cs
- SimpleType.cs
- ProcessRequestArgs.cs
- AnnotationResource.cs
- NativeCppClassAttribute.cs
- InstancePersistenceCommand.cs
- WindowHideOrCloseTracker.cs
- WebResponse.cs
- BlobPersonalizationState.cs
- IgnoreFlushAndCloseStream.cs
- SecurityTokenTypes.cs
- HttpCacheVaryByContentEncodings.cs
- PerformanceCountersElement.cs
- CardSpaceSelector.cs