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
- Util.cs
- CharacterMetrics.cs
- SByte.cs
- XmlText.cs
- Select.cs
- TextBoxBase.cs
- PriorityBindingExpression.cs
- BaseAppDomainProtocolHandler.cs
- ArglessEventHandlerProxy.cs
- DispatchWrapper.cs
- ZipPackage.cs
- SendActivityValidator.cs
- TemplateKeyConverter.cs
- TokenBasedSet.cs
- MobileControlDesigner.cs
- DesignerSerializationVisibilityAttribute.cs
- ApplicationHost.cs
- XmlSchemaAnyAttribute.cs
- DeliveryRequirementsAttribute.cs
- FileSystemEventArgs.cs
- AnnotationObservableCollection.cs
- Utils.cs
- BridgeDataReader.cs
- KeyGesture.cs
- BitmapMetadataEnumerator.cs
- EnumValidator.cs
- PrinterSettings.cs
- TableRowGroup.cs
- DateRangeEvent.cs
- SessionState.cs
- PackageRelationshipCollection.cs
- DispatcherExceptionFilterEventArgs.cs
- HtmlPageAdapter.cs
- ThreadInterruptedException.cs
- RepeaterItem.cs
- VBIdentifierTrimConverter.cs
- ListViewItemEventArgs.cs
- Maps.cs
- GPPOINT.cs
- WSFederationHttpBindingElement.cs
- ServiceOperation.cs
- AdRotator.cs
- InputProcessorProfiles.cs
- ComplexType.cs
- NaturalLanguageHyphenator.cs
- ListBoxItem.cs
- HttpListenerException.cs
- SRef.cs
- PackageRelationshipSelector.cs
- WebPartVerbsEventArgs.cs
- MailMessage.cs
- MeasureData.cs
- Translator.cs
- CursorConverter.cs
- ReadOnlyObservableCollection.cs
- ProfileSection.cs
- ClientConfigurationSystem.cs
- TextSelectionHelper.cs
- PrimaryKeyTypeConverter.cs
- RepeaterItem.cs
- CqlBlock.cs
- VisualStyleElement.cs
- SchemaRegistration.cs
- DataBindingList.cs
- EventHandlers.cs
- DiagnosticTrace.cs
- PluralizationService.cs
- ListBoxItem.cs
- Hex.cs
- ComponentRenameEvent.cs
- XXXOnTypeBuilderInstantiation.cs
- CodeEntryPointMethod.cs
- TickBar.cs
- WebServiceHostFactory.cs
- TypedServiceOperationListItem.cs
- TabItem.cs
- FormViewUpdateEventArgs.cs
- WorkflowViewService.cs
- KnownTypeAttribute.cs
- HttpCacheVaryByContentEncodings.cs
- _ConnectStream.cs
- PropertyChangingEventArgs.cs
- XmlSchemaExternal.cs
- InputLangChangeRequestEvent.cs
- __TransparentProxy.cs
- WebRequestModulesSection.cs
- Metadata.cs
- XmlQueryTypeFactory.cs
- ConfigUtil.cs
- Calendar.cs
- OciHandle.cs
- MachineSettingsSection.cs
- InternalControlCollection.cs
- DisableDpiAwarenessAttribute.cs
- DataGridLinkButton.cs
- DesignerWebPartChrome.cs
- RelatedCurrencyManager.cs
- oledbconnectionstring.cs
- Context.cs
- FixedTextPointer.cs