Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- CodeAttachEventStatement.cs
- XmlAttributeCollection.cs
- EntityDesignerDataSourceView.cs
- COM2FontConverter.cs
- PenThreadWorker.cs
- AutoResetEvent.cs
- DriveNotFoundException.cs
- KnownAssemblyEntry.cs
- GlobalizationSection.cs
- SafeIUnknown.cs
- Thumb.cs
- FlagsAttribute.cs
- ResourceReferenceExpressionConverter.cs
- SerializationTrace.cs
- Environment.cs
- CompilationLock.cs
- ContainsSearchOperator.cs
- SmiMetaData.cs
- FolderLevelBuildProvider.cs
- SqlConnectionStringBuilder.cs
- PointHitTestResult.cs
- DesignerLoader.cs
- XsltArgumentList.cs
- TextWriterEngine.cs
- UserPreferenceChangedEventArgs.cs
- WebPartCatalogCloseVerb.cs
- XmlSchemaDocumentation.cs
- QuadraticEase.cs
- CanExecuteRoutedEventArgs.cs
- TextElementAutomationPeer.cs
- _BufferOffsetSize.cs
- ExtensionQuery.cs
- PageThemeBuildProvider.cs
- ProviderCommandInfoUtils.cs
- DataReaderContainer.cs
- DispatcherProcessingDisabled.cs
- HtmlAnchor.cs
- DragEventArgs.cs
- HostedTcpTransportManager.cs
- DbDataReader.cs
- ColorConverter.cs
- ADRole.cs
- XamlClipboardData.cs
- RefExpr.cs
- WindowsEditBoxRange.cs
- safex509handles.cs
- BookmarkWorkItem.cs
- ToolStripOverflowButton.cs
- XmlChildEnumerator.cs
- codemethodreferenceexpression.cs
- RelatedPropertyManager.cs
- LinearQuaternionKeyFrame.cs
- ShadowGlyph.cs
- IQueryable.cs
- __ComObject.cs
- XmlDataSourceView.cs
- ConfigurationValidatorBase.cs
- QuaternionAnimation.cs
- WorkflowPersistenceService.cs
- HandoffBehavior.cs
- MimeObjectFactory.cs
- FixedSOMContainer.cs
- CompositeDataBoundControl.cs
- MeasureData.cs
- FormViewCommandEventArgs.cs
- AsymmetricKeyExchangeDeformatter.cs
- SerializerDescriptor.cs
- HttpCapabilitiesEvaluator.cs
- WebEventCodes.cs
- VirtualPath.cs
- IERequestCache.cs
- RegexWorker.cs
- ComponentResourceManager.cs
- SHA384.cs
- CompilationUtil.cs
- XPathNode.cs
- SQLBoolean.cs
- CacheModeValueSerializer.cs
- Pens.cs
- UICuesEvent.cs
- contentDescriptor.cs
- KerberosTicketHashIdentifierClause.cs
- backend.cs
- SmiEventSink_DeferedProcessing.cs
- AnnotationComponentManager.cs
- CodeNamespace.cs
- UiaCoreTypesApi.cs
- ObservableDictionary.cs
- CalendarAutomationPeer.cs
- DataRecord.cs
- InstalledFontCollection.cs
- EditCommandColumn.cs
- DataGridColumnsPage.cs
- HtmlPhoneCallAdapter.cs
- MainMenu.cs
- Duration.cs
- SerialReceived.cs
- HttpChannelHelpers.cs
- MappingModelBuildProvider.cs
- HtmlInputText.cs