Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MatrixTransform.cs
- RuntimeResourceSet.cs
- StdRegProviderWrapper.cs
- OleDbRowUpdatedEvent.cs
- OleDbTransaction.cs
- HotSpotCollection.cs
- IPPacketInformation.cs
- ConfigXmlCDataSection.cs
- SystemColors.cs
- AppDomainManager.cs
- DependentList.cs
- RtType.cs
- SecurityTokenValidationException.cs
- SortedDictionary.cs
- BulletedList.cs
- CompositionTarget.cs
- WebPartConnectionsConfigureVerb.cs
- Binding.cs
- XmlHierarchyData.cs
- SpellCheck.cs
- WindowsGraphics.cs
- MobileListItem.cs
- CellPartitioner.cs
- SmiGettersStream.cs
- WebMessageBodyStyleHelper.cs
- TrackingServices.cs
- TimelineGroup.cs
- Debug.cs
- DataGridViewCellLinkedList.cs
- DispatchWrapper.cs
- NotImplementedException.cs
- SqlReferenceCollection.cs
- EntityFunctions.cs
- LiteralTextParser.cs
- GenerateTemporaryAssemblyTask.cs
- LoginDesignerUtil.cs
- DispatcherHooks.cs
- FormsAuthenticationUser.cs
- PreDigestedSignedInfo.cs
- NestedContainer.cs
- SecurityCriticalDataForSet.cs
- TreeNodeClickEventArgs.cs
- ExtendedPropertyDescriptor.cs
- ValidationPropertyAttribute.cs
- ParameterCollection.cs
- MTConfigUtil.cs
- FormsAuthenticationModule.cs
- ValidatedControlConverter.cs
- Models.cs
- SparseMemoryStream.cs
- CommandField.cs
- COAUTHINFO.cs
- Merger.cs
- GraphicsContainer.cs
- ColumnWidthChangedEvent.cs
- TextEditorThreadLocalStore.cs
- DesignerMetadata.cs
- EntityTransaction.cs
- RecognizeCompletedEventArgs.cs
- HttpTransportSecurityElement.cs
- Constant.cs
- EventListener.cs
- ZipPackagePart.cs
- AnimatedTypeHelpers.cs
- XNodeValidator.cs
- JulianCalendar.cs
- DebugHandleTracker.cs
- UDPClient.cs
- StateMachine.cs
- EventDescriptorCollection.cs
- StringSource.cs
- ListViewTableRow.cs
- HGlobalSafeHandle.cs
- AliasedSlot.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- SymmetricAlgorithm.cs
- PropertyInformationCollection.cs
- IdlingCommunicationPool.cs
- NameSpaceEvent.cs
- recordstate.cs
- RequestResponse.cs
- SHA512.cs
- Stream.cs
- DataGridColumnCollection.cs
- XmlNamedNodeMap.cs
- RemoveStoryboard.cs
- QueryableDataSourceHelper.cs
- SupportingTokenAuthenticatorSpecification.cs
- PropertySet.cs
- UndoManager.cs
- EmptyElement.cs
- DesignerLoader.cs
- Variable.cs
- WebHttpEndpoint.cs
- BindToObject.cs
- XhtmlTextWriter.cs
- TypeForwardedToAttribute.cs
- WindowsSecurityToken.cs
- RequestQueryParser.cs
- DataPagerFieldCommandEventArgs.cs