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
- OraclePermission.cs
- BaseServiceProvider.cs
- TextModifierScope.cs
- ThicknessAnimationBase.cs
- TraceLevelStore.cs
- OleAutBinder.cs
- BitStack.cs
- BinaryConverter.cs
- DesignerView.cs
- ListView.cs
- MissingFieldException.cs
- MoveSizeWinEventHandler.cs
- TextModifier.cs
- SecurityException.cs
- SqlNotificationEventArgs.cs
- WhitespaceRuleReader.cs
- PrincipalPermission.cs
- GeneralTransform3DCollection.cs
- BitmapEffectrendercontext.cs
- CodeBlockBuilder.cs
- InvalidPrinterException.cs
- Double.cs
- ServiceHttpHandlerFactory.cs
- CompilerGeneratedAttribute.cs
- WizardStepBase.cs
- XmlSchemaFacet.cs
- PeerFlooder.cs
- OdbcError.cs
- MoveSizeWinEventHandler.cs
- XmlSchemaImporter.cs
- XsdCachingReader.cs
- StringUtil.cs
- FormViewInsertEventArgs.cs
- BinaryMethodMessage.cs
- hwndwrapper.cs
- StringConcat.cs
- Mappings.cs
- PageSetupDialog.cs
- HtmlEmptyTagControlBuilder.cs
- WorkflowDesigner.cs
- HtmlTableCellCollection.cs
- HtmlAnchor.cs
- FormViewInsertEventArgs.cs
- StatusBarItemAutomationPeer.cs
- _NTAuthentication.cs
- DataGridViewCellLinkedList.cs
- SemanticAnalyzer.cs
- SQLInt64Storage.cs
- DesignTimeData.cs
- WebPartZoneBase.cs
- SafeNativeMethods.cs
- PropertyTabChangedEvent.cs
- StaticExtension.cs
- PopupControlService.cs
- RolePrincipal.cs
- OdbcParameterCollection.cs
- DbCommandDefinition.cs
- X509Extension.cs
- xml.cs
- HostingEnvironmentException.cs
- JsonByteArrayDataContract.cs
- ListSortDescription.cs
- UniqueTransportManagerRegistration.cs
- XsltInput.cs
- TTSVoice.cs
- HideDisabledControlAdapter.cs
- PenLineCapValidation.cs
- SelectorItemAutomationPeer.cs
- Column.cs
- WindowsRegion.cs
- ConnectionsZone.cs
- LocalFileSettingsProvider.cs
- DocumentPage.cs
- XmlElementAttribute.cs
- _DigestClient.cs
- XpsThumbnail.cs
- XsltArgumentList.cs
- ImportCatalogPart.cs
- CompoundFileStreamReference.cs
- Inline.cs
- WindowsStatic.cs
- QilName.cs
- LocalizationComments.cs
- XamlFxTrace.cs
- FontDriver.cs
- OptimizedTemplateContentHelper.cs
- TextFormatterHost.cs
- SvcMapFileSerializer.cs
- AliasGenerator.cs
- EditBehavior.cs
- AdRotatorDesigner.cs
- UnsafeNativeMethods.cs
- ToolStripSplitStackLayout.cs
- UnsafeNativeMethods.cs
- PathGeometry.cs
- Native.cs
- ListViewItem.cs
- BaseUriWithWildcard.cs
- ApplicationId.cs
- ScalarOps.cs