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
- HtmlInputPassword.cs
- WeakEventTable.cs
- XamlToRtfParser.cs
- SQLInt64.cs
- ColumnMapProcessor.cs
- ButtonColumn.cs
- XmlQualifiedName.cs
- ObjectItemCollection.cs
- ServiceTimeoutsBehavior.cs
- SafeTokenHandle.cs
- DrawingContextWalker.cs
- MailMessageEventArgs.cs
- DataSourceHelper.cs
- ComponentCommands.cs
- SecurityTokenResolver.cs
- XmlLanguageConverter.cs
- wmiutil.cs
- HScrollBar.cs
- RoutedCommand.cs
- SecondaryIndex.cs
- TextServicesDisplayAttributePropertyRanges.cs
- ProfilePropertyNameValidator.cs
- AccessorTable.cs
- _ConnectOverlappedAsyncResult.cs
- ProbeMatchesCD1.cs
- NavigationService.cs
- CodeConstructor.cs
- ObjectDataSourceEventArgs.cs
- ScriptingJsonSerializationSection.cs
- safesecurityhelperavalon.cs
- DayRenderEvent.cs
- ClientUtils.cs
- ToolStripTextBox.cs
- IndexOutOfRangeException.cs
- ThreadExceptionDialog.cs
- WindowsSysHeader.cs
- Internal.cs
- RegistrySecurity.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- XmlILTrace.cs
- GridPatternIdentifiers.cs
- CommonGetThemePartSize.cs
- AssociationTypeEmitter.cs
- _BasicClient.cs
- StrongNamePublicKeyBlob.cs
- Block.cs
- OleDbStruct.cs
- FactoryGenerator.cs
- __Filters.cs
- AsyncResult.cs
- ComNativeDescriptor.cs
- ChangePassword.cs
- FileSecurity.cs
- JulianCalendar.cs
- CompareValidator.cs
- Int32Animation.cs
- QilBinary.cs
- ValidationEventArgs.cs
- SafeBitVector32.cs
- RoleManagerSection.cs
- ObjectToIdCache.cs
- FormViewDesigner.cs
- WindowsRichEditRange.cs
- BuildTopDownAttribute.cs
- TaskFormBase.cs
- DelegatingHeader.cs
- SettingsPropertyIsReadOnlyException.cs
- Substitution.cs
- ResourceReferenceKeyNotFoundException.cs
- TreeIterators.cs
- CurrentTimeZone.cs
- UITypeEditor.cs
- ParserOptions.cs
- XslException.cs
- HtmlInputCheckBox.cs
- Stacktrace.cs
- DataTableMapping.cs
- HtmlDocument.cs
- ServiceModelPerformanceCounters.cs
- ResourcePool.cs
- sqlnorm.cs
- AffineTransform3D.cs
- HostProtectionException.cs
- RoleService.cs
- XmlLanguage.cs
- CultureInfoConverter.cs
- ContentElementAutomationPeer.cs
- RegexBoyerMoore.cs
- ImageCodecInfoPrivate.cs
- ListSortDescription.cs
- ValidatorUtils.cs
- SafeNativeMethods.cs
- ToolTipAutomationPeer.cs
- Overlapped.cs
- EdmScalarPropertyAttribute.cs
- DataStorage.cs
- BindingExpressionBase.cs
- InvalidCastException.cs
- ServiceRouteHandler.cs
- SizeAnimation.cs