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
- MimeFormatExtensions.cs
- ClientSideQueueItem.cs
- WindowsFormsSynchronizationContext.cs
- SqlDataReaderSmi.cs
- HyperLinkField.cs
- ConfigXmlSignificantWhitespace.cs
- ClickablePoint.cs
- PropertyGeneratedEventArgs.cs
- FunctionCommandText.cs
- WebPartConnectionsConfigureVerb.cs
- LocationEnvironment.cs
- TripleDESCryptoServiceProvider.cs
- BinHexEncoder.cs
- CryptographicAttribute.cs
- User.cs
- WebAdminConfigurationHelper.cs
- SqlGatherProducedAliases.cs
- DateTimePicker.cs
- BehaviorDragDropEventArgs.cs
- HuffmanTree.cs
- SecurityHeaderLayout.cs
- BaseParagraph.cs
- columnmapfactory.cs
- PermissionSet.cs
- SearchForVirtualItemEventArgs.cs
- InternalPermissions.cs
- TaiwanLunisolarCalendar.cs
- DiscreteKeyFrames.cs
- SessionParameter.cs
- RoleManagerModule.cs
- RightNameExpirationInfoPair.cs
- Point3DCollection.cs
- Canvas.cs
- CompModSwitches.cs
- Point3DAnimationUsingKeyFrames.cs
- MouseCaptureWithinProperty.cs
- PeerTransportSecurityElement.cs
- VariableAction.cs
- CheckBox.cs
- XmlSchemaInferenceException.cs
- TemplateBamlTreeBuilder.cs
- TextEditorCopyPaste.cs
- WebServiceEnumData.cs
- PropertyValueChangedEvent.cs
- IndentTextWriter.cs
- InsufficientMemoryException.cs
- CustomCategoryAttribute.cs
- IdentityReference.cs
- ToolStripOverflow.cs
- TdsParserStateObject.cs
- DbDataReader.cs
- XslCompiledTransform.cs
- LZCodec.cs
- Rotation3D.cs
- DataSourceView.cs
- WebPartVerbsEventArgs.cs
- HtmlElementCollection.cs
- TransformConverter.cs
- ToolStripProgressBar.cs
- COM2IDispatchConverter.cs
- DataViewManagerListItemTypeDescriptor.cs
- HttpHandlerAction.cs
- ScriptHandlerFactory.cs
- MemberBinding.cs
- WebUtil.cs
- ArrayWithOffset.cs
- PeerApplication.cs
- RayHitTestParameters.cs
- SamlAttribute.cs
- CalloutQueueItem.cs
- Logging.cs
- SingleKeyFrameCollection.cs
- Contracts.cs
- XmlSchemas.cs
- CompileLiteralTextParser.cs
- XmlnsCompatibleWithAttribute.cs
- UnknownWrapper.cs
- PassportIdentity.cs
- ParagraphVisual.cs
- GroupBoxAutomationPeer.cs
- DbReferenceCollection.cs
- PrincipalPermission.cs
- XpsResource.cs
- Point3DConverter.cs
- RegexParser.cs
- SerializableReadOnlyDictionary.cs
- DependencyProperty.cs
- Pts.cs
- XmlSchemaExternal.cs
- MinimizableAttributeTypeConverter.cs
- PageFunction.cs
- LineSegment.cs
- CollectionViewSource.cs
- TextDocumentView.cs
- TypeUnloadedException.cs
- ObjectManager.cs
- TrustManager.cs
- TimeSpanValidator.cs
- ADMembershipProvider.cs
- UnsafeNativeMethods.cs