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
- Label.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- AppDomain.cs
- Char.cs
- SchemaCollectionPreprocessor.cs
- ExtractorMetadata.cs
- NTAccount.cs
- MatrixTransform3D.cs
- SafeNativeMethods.cs
- FileChangeNotifier.cs
- FlatButtonAppearance.cs
- ContainerFilterService.cs
- SettingsPropertyValue.cs
- ViewUtilities.cs
- AuthenticationService.cs
- GridView.cs
- MSHTMLHost.cs
- EndpointAddressAugust2004.cs
- HttpVersion.cs
- ListChangedEventArgs.cs
- EllipticalNodeOperations.cs
- translator.cs
- RSACryptoServiceProvider.cs
- TextPenaltyModule.cs
- HttpCachePolicyElement.cs
- QueryHandler.cs
- MultipleViewPattern.cs
- JapaneseCalendar.cs
- BehaviorEditorPart.cs
- BindingContext.cs
- Geometry3D.cs
- LineSegment.cs
- FunctionOverloadResolver.cs
- ConnectionPoolManager.cs
- Vector3DConverter.cs
- ReadWriteObjectLock.cs
- FunctionQuery.cs
- PropertyBuilder.cs
- Brushes.cs
- WebPartConnection.cs
- WebBrowserNavigatedEventHandler.cs
- CommonGetThemePartSize.cs
- EncryptedPackageFilter.cs
- ActiveDocumentEvent.cs
- ClockController.cs
- OraclePermissionAttribute.cs
- ScrollItemPattern.cs
- ToolStripDropTargetManager.cs
- Accessible.cs
- parserscommon.cs
- MeshGeometry3D.cs
- _IPv4Address.cs
- DebugHandleTracker.cs
- XsltArgumentList.cs
- ContainerUtilities.cs
- ObjectQueryState.cs
- PermissionSetEnumerator.cs
- PrimarySelectionAdorner.cs
- CngKeyCreationParameters.cs
- TextChangedEventArgs.cs
- LinqDataSourceDeleteEventArgs.cs
- BlockUIContainer.cs
- HwndStylusInputProvider.cs
- CancelEventArgs.cs
- AjaxFrameworkAssemblyAttribute.cs
- ListSortDescriptionCollection.cs
- FontSizeConverter.cs
- SerializationSectionGroup.cs
- ImageListStreamer.cs
- StartUpEventArgs.cs
- TdsRecordBufferSetter.cs
- InstanceHandleReference.cs
- NameValuePermission.cs
- XmlSchemaDatatype.cs
- QuaternionAnimationBase.cs
- counter.cs
- FormattedText.cs
- ConsoleCancelEventArgs.cs
- MissingManifestResourceException.cs
- MergeFailedEvent.cs
- XmlSchemaObjectCollection.cs
- PropertyReferenceSerializer.cs
- WorkItem.cs
- UrlPath.cs
- ColorTransform.cs
- DataServiceRequest.cs
- PagedDataSource.cs
- GeneralTransform3DGroup.cs
- MarkupCompiler.cs
- TransactionFlowOption.cs
- SqlConnectionManager.cs
- Mapping.cs
- UrlEncodedParameterWriter.cs
- VariantWrapper.cs
- ArrayWithOffset.cs
- PropertyPathConverter.cs
- BinarySecretSecurityToken.cs
- WebDescriptionAttribute.cs
- _OverlappedAsyncResult.cs
- CustomAttributeFormatException.cs