Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Reflection / Pointer.cs / 1305376 / 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; using System.Diagnostics.Contracts; [CLSCompliant(false)] [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public sealed class Pointer: ISerializable { unsafe private void* _ptr; private RuntimeType _ptrType; private Pointer() {} [System.Security.SecurityCritical] // auto-generated private unsafe Pointer(SerializationInfo info, StreamingContext context) { _ptr = ((IntPtr)(info.GetValue("_ptr", typeof(IntPtr)))).ToPointer(); _ptrType = (RuntimeType)info.GetValue("_ptrType", typeof(RuntimeType)); } // 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. [System.Security.SecurityCritical] // auto-generated 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"); Contract.EndContractBlock(); RuntimeType rt = type as RuntimeType; if (rt == null) throw new ArgumentException(Environment.GetResourceString("Arg_MustBePointer"), "ptr"); Pointer x = new Pointer(); x._ptr = ptr; x._ptrType = rt; return x; } // Returned the stored pointer. [System.Security.SecurityCritical] // auto-generated public static unsafe void* Unbox(Object ptr) { if (!(ptr is Pointer)) throw new ArgumentException(Environment.GetResourceString("Arg_MustBePointer"),"ptr"); return ((Pointer)ptr)._ptr; } internal RuntimeType GetPointerType() { return _ptrType; } [System.Security.SecurityCritical] // auto-generated internal unsafe Object GetPointerValue() { return (IntPtr)_ptr; } #if FEATURE_SERIALIZATION [System.Security.SecurityCritical] unsafe void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue("_ptr", new IntPtr(_ptr)); info.AddValue("_ptrType", _ptrType); } #endif } } // 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
- ServiceOperationListItemList.cs
- TabItem.cs
- ManualResetEvent.cs
- InvokeSchedule.cs
- FileDialogCustomPlace.cs
- HttpRuntime.cs
- ButtonChrome.cs
- ExpressionWriter.cs
- ManagedCodeMarkers.cs
- SspiNegotiationTokenProvider.cs
- RepeatButtonAutomationPeer.cs
- UnknownMessageReceivedEventArgs.cs
- TextViewSelectionProcessor.cs
- HuffmanTree.cs
- WarningException.cs
- FrameworkTemplate.cs
- DataListItem.cs
- MessageDispatch.cs
- SecurityUtils.cs
- XamlSerializerUtil.cs
- TextCollapsingProperties.cs
- EnumerableRowCollectionExtensions.cs
- LinkDescriptor.cs
- Helpers.cs
- ContentOperations.cs
- XmlAttributeProperties.cs
- SymbolUsageManager.cs
- ErrorLog.cs
- GenericsInstances.cs
- updateconfighost.cs
- WebServiceHandler.cs
- RootBrowserWindowProxy.cs
- ClipboardProcessor.cs
- AttributeQuery.cs
- ObjectQuery.cs
- HwndKeyboardInputProvider.cs
- LOSFormatter.cs
- safex509handles.cs
- XXXOnTypeBuilderInstantiation.cs
- LabelEditEvent.cs
- DbConnectionPoolCounters.cs
- PropertyMetadata.cs
- WebPartDisplayModeCollection.cs
- BulletedListEventArgs.cs
- PerformanceCounterManager.cs
- PublisherIdentityPermission.cs
- ObjectComplexPropertyMapping.cs
- DesignerActionHeaderItem.cs
- Animatable.cs
- FixedTextBuilder.cs
- AdCreatedEventArgs.cs
- wgx_commands.cs
- ValueProviderWrapper.cs
- DisableDpiAwarenessAttribute.cs
- SetterBase.cs
- PrivilegeNotHeldException.cs
- XPathDescendantIterator.cs
- DoubleAnimationBase.cs
- StringFormat.cs
- BrushMappingModeValidation.cs
- TextPointerBase.cs
- EntryIndex.cs
- QueryStringParameter.cs
- ToolZone.cs
- VisualStyleRenderer.cs
- OSFeature.cs
- Vector3D.cs
- Attribute.cs
- SafeNativeMethods.cs
- TouchFrameEventArgs.cs
- BitConverter.cs
- BidOverLoads.cs
- InputMethodStateTypeInfo.cs
- StorageMappingItemLoader.cs
- BaseWebProxyFinder.cs
- ConnectionStringsExpressionBuilder.cs
- SqlNodeTypeOperators.cs
- ListViewDeletedEventArgs.cs
- DataTableClearEvent.cs
- LogConverter.cs
- Policy.cs
- State.cs
- Nullable.cs
- loginstatus.cs
- basecomparevalidator.cs
- StyleSelector.cs
- StrokeNodeOperations2.cs
- TablePattern.cs
- URIFormatException.cs
- DataSourceCacheDurationConverter.cs
- TagPrefixAttribute.cs
- DataServiceHostFactory.cs
- TabControlAutomationPeer.cs
- PackageFilter.cs
- InvokeWebService.cs
- ConnectionProviderAttribute.cs
- DateBoldEvent.cs
- SingleObjectCollection.cs
- Int64Storage.cs
- MarkupWriter.cs