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
- CultureSpecificStringDictionary.cs
- BindingsSection.cs
- DataGridViewSelectedRowCollection.cs
- ApplicationHost.cs
- SafeRsaProviderHandle.cs
- WebServicesSection.cs
- DependencyProperty.cs
- EventRoute.cs
- TypeDescriptorFilterService.cs
- TemplateControlCodeDomTreeGenerator.cs
- XmlSubtreeReader.cs
- WebPartMovingEventArgs.cs
- Composition.cs
- GetPageNumberCompletedEventArgs.cs
- DesignerCatalogPartChrome.cs
- ViewGenerator.cs
- SiteMapNodeItemEventArgs.cs
- AppDomainProtocolHandler.cs
- StorageBasedPackageProperties.cs
- CodeGeneratorAttribute.cs
- WindowsListView.cs
- TemplatePropertyEntry.cs
- GlyphInfoList.cs
- EventLevel.cs
- AdRotator.cs
- XmlSchemaCollection.cs
- WebPartManager.cs
- brushes.cs
- DateTimePickerDesigner.cs
- StylusPointPropertyUnit.cs
- Converter.cs
- PersonalizationStateQuery.cs
- LookupNode.cs
- SystemIcmpV4Statistics.cs
- XmlWrappingReader.cs
- TableProviderWrapper.cs
- Button.cs
- FreeFormPanel.cs
- FunctionNode.cs
- GPPOINT.cs
- AuditLog.cs
- ClientRuntimeConfig.cs
- InputGestureCollection.cs
- NativeActivityTransactionContext.cs
- SqlDataReaderSmi.cs
- StrongName.cs
- EntityTransaction.cs
- PostBackTrigger.cs
- OleDbEnumerator.cs
- Image.cs
- DeflateStream.cs
- PrimitiveXmlSerializers.cs
- NodeFunctions.cs
- BasicExpandProvider.cs
- SchemaConstraints.cs
- XPathDocumentNavigator.cs
- SplayTreeNode.cs
- IisTraceWebEventProvider.cs
- HyperLinkColumn.cs
- DbModificationClause.cs
- RichTextBox.cs
- QueueProcessor.cs
- SystemIcmpV4Statistics.cs
- HandledMouseEvent.cs
- ProcessManager.cs
- StringReader.cs
- ReservationCollection.cs
- ItemCollection.cs
- HtmlTableCell.cs
- MarginsConverter.cs
- MainMenu.cs
- XsltContext.cs
- Model3DGroup.cs
- EmbeddedMailObjectsCollection.cs
- StringHandle.cs
- PhysicalAddress.cs
- InvalidOperationException.cs
- Expression.cs
- Subtree.cs
- ColorDialog.cs
- SwitchLevelAttribute.cs
- Group.cs
- SupportsEventValidationAttribute.cs
- DEREncoding.cs
- CroppedBitmap.cs
- ContentElement.cs
- ConvertersCollection.cs
- XmlDataSourceNodeDescriptor.cs
- SqlDataSourceSelectingEventArgs.cs
- ThicknessAnimationBase.cs
- ExpressionWriter.cs
- SchemaLookupTable.cs
- ThreadNeutralSemaphore.cs
- GCHandleCookieTable.cs
- SignatureDescription.cs
- HttpApplicationFactory.cs
- AlphabetConverter.cs
- AggregateNode.cs
- DesignSurfaceManager.cs
- Point.cs