Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / clr / src / BCL / System / Reflection / Pointer.cs / 1 / Pointer.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //////////////////////////////////////////////////////////////////////////////// // // This is a wrapper class for Pointers // // // // namespace System.Reflection { using System; using CultureInfo = System.Globalization.CultureInfo; using System.Runtime.Serialization; [CLSCompliant(false)] [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public sealed class Pointer: ISerializable { unsafe private void* _ptr; private Type _ptrType; private Pointer() {} private unsafe Pointer(SerializationInfo info, StreamingContext context) { _ptr = ((IntPtr)(info.GetValue("_ptr", typeof(IntPtr)))).ToPointer(); _ptrType = (Type)info.GetValue("_ptrType", typeof(Type)); } // This method will box an pointer. We save both the // value and the type so we can access it from the native code // during an Invoke. public static unsafe Object Box(void *ptr,Type type) { if (type == null) throw new ArgumentNullException("type"); if (!type.IsPointer) throw new ArgumentException(Environment.GetResourceString("Arg_MustBePointer"),"ptr"); Pointer x = new Pointer(); x._ptr = ptr; x._ptrType = type; return x; } // Returned the stored pointer. public static unsafe void* Unbox(Object ptr) { if (!(ptr is Pointer)) throw new ArgumentException(Environment.GetResourceString("Arg_MustBePointer"),"ptr"); return ((Pointer)ptr)._ptr; } internal Type GetPointerType() { return _ptrType; } internal unsafe Object GetPointerValue() { return (IntPtr)_ptr; } unsafe void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue("_ptr", new IntPtr(_ptr)); info.AddValue("_ptrType", _ptrType); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //////////////////////////////////////////////////////////////////////////////// // // This is a wrapper class for Pointers // // // // namespace System.Reflection { using System; using CultureInfo = System.Globalization.CultureInfo; using System.Runtime.Serialization; [CLSCompliant(false)] [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public sealed class Pointer: ISerializable { unsafe private void* _ptr; private Type _ptrType; private Pointer() {} private unsafe Pointer(SerializationInfo info, StreamingContext context) { _ptr = ((IntPtr)(info.GetValue("_ptr", typeof(IntPtr)))).ToPointer(); _ptrType = (Type)info.GetValue("_ptrType", typeof(Type)); } // This method will box an pointer. We save both the // value and the type so we can access it from the native code // during an Invoke. public static unsafe Object Box(void *ptr,Type type) { if (type == null) throw new ArgumentNullException("type"); if (!type.IsPointer) throw new ArgumentException(Environment.GetResourceString("Arg_MustBePointer"),"ptr"); Pointer x = new Pointer(); x._ptr = ptr; x._ptrType = type; return x; } // Returned the stored pointer. public static unsafe void* Unbox(Object ptr) { if (!(ptr is Pointer)) throw new ArgumentException(Environment.GetResourceString("Arg_MustBePointer"),"ptr"); return ((Pointer)ptr)._ptr; } internal Type GetPointerType() { return _ptrType; } internal unsafe Object GetPointerValue() { return (IntPtr)_ptr; } unsafe void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue("_ptr", new IntPtr(_ptr)); info.AddValue("_ptrType", _ptrType); } } } // 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
- TrackingStringDictionary.cs
- ObfuscationAttribute.cs
- ImplicitInputBrush.cs
- TreeViewEvent.cs
- SpeakInfo.cs
- XmlReflectionImporter.cs
- TraceContextRecord.cs
- ClientType.cs
- DataGridCaption.cs
- RectangleHotSpot.cs
- HGlobalSafeHandle.cs
- StreamWriter.cs
- Pointer.cs
- CodeDelegateCreateExpression.cs
- SafeCryptoHandles.cs
- SubtreeProcessor.cs
- BezierSegment.cs
- ItemContainerProviderWrapper.cs
- _LazyAsyncResult.cs
- ToolTipService.cs
- EventToken.cs
- DirectoryNotFoundException.cs
- DataTableExtensions.cs
- InfiniteIntConverter.cs
- ReadWriteSpinLock.cs
- ReflectionPermission.cs
- Column.cs
- TableLayoutStyleCollection.cs
- RegistryKey.cs
- PrimitiveXmlSerializers.cs
- SimpleWorkerRequest.cs
- CodeTypeReferenceExpression.cs
- Effect.cs
- ViewKeyConstraint.cs
- ISO2022Encoding.cs
- SchemaTypeEmitter.cs
- ItemsPanelTemplate.cs
- EventLogConfiguration.cs
- FilterInvalidBodyAccessException.cs
- ResXDataNode.cs
- SimpleLine.cs
- UserControl.cs
- QueryPrefixOp.cs
- RegexCompilationInfo.cs
- SafeBitVector32.cs
- Signature.cs
- ToolStripItemTextRenderEventArgs.cs
- InstanceHandleConflictException.cs
- ToolboxComponentsCreatingEventArgs.cs
- HttpCapabilitiesBase.cs
- IpcChannelHelper.cs
- NewArray.cs
- BamlResourceSerializer.cs
- DeferredReference.cs
- HttpApplication.cs
- SecurityHeader.cs
- ParallelForEach.cs
- ConstNode.cs
- ScriptMethodAttribute.cs
- XmlNodeReader.cs
- EventlogProvider.cs
- DocumentEventArgs.cs
- ADRole.cs
- Panel.cs
- FixedTextBuilder.cs
- StylusPointProperty.cs
- CodeBlockBuilder.cs
- DiffuseMaterial.cs
- Configuration.cs
- Convert.cs
- PartialCachingAttribute.cs
- ObjectAssociationEndMapping.cs
- ScriptReference.cs
- SelectionEditor.cs
- TickBar.cs
- MimeTypeMapper.cs
- Point4DConverter.cs
- InternalTypeHelper.cs
- IntegrationExceptionEventArgs.cs
- HandleRef.cs
- EngineSite.cs
- SchemaName.cs
- AmbientValueAttribute.cs
- Int16Storage.cs
- ProfileInfo.cs
- ObfuscationAttribute.cs
- MenuItemAutomationPeer.cs
- InternalConfigRoot.cs
- DPTypeDescriptorContext.cs
- HighContrastHelper.cs
- DataGridView.cs
- DataGridViewCellStyleEditor.cs
- DateTimeFormatInfo.cs
- assemblycache.cs
- XmlSchemaSimpleTypeList.cs
- TemplatedControlDesigner.cs
- HttpFileCollectionBase.cs
- BrowsableAttribute.cs
- TypeForwardedToAttribute.cs
- DesignerHelpers.cs