Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Tools / WSATConfig / Configuration / SafeLocalAllocation.cs / 1305376 / SafeLocalAllocation.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.Tools.ServiceModel.WsatConfig { using System; using System.Security; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Runtime.ConstrainedExecution; using Microsoft.Win32.SafeHandles; sealed class SafeLocalAllocation : SafeHandleZeroOrMinusOneIsInvalid { [SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)] internal SafeLocalAllocation(int size) : base(true) { #pragma warning suppress 56523 IntPtr pointer = SafeNativeMethods.LocalAlloc(SafeNativeMethods.LMEM_ZEROINIT, size); SetHandle(pointer); } #if WSAT_UI [SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)] internal SafeLocalAllocation(object source) : base(true) { #pragma warning suppress 56523 IntPtr pointer = SafeNativeMethods.LocalAlloc(SafeNativeMethods.LMEM_ZEROINIT, Marshal.SizeOf(source)); SetHandle(pointer); Marshal.StructureToPtr( source, handle, false); } #endif internal void Copy(byte[] source, int startIndex, int count) { System.Runtime.InteropServices.Marshal.Copy( source, startIndex, handle, count); } protected override bool ReleaseHandle() { #pragma warning suppress 56523 IntPtr r = SafeNativeMethods.LocalFree(handle); return r == IntPtr.Zero; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.Tools.ServiceModel.WsatConfig { using System; using System.Security; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Runtime.ConstrainedExecution; using Microsoft.Win32.SafeHandles; sealed class SafeLocalAllocation : SafeHandleZeroOrMinusOneIsInvalid { [SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)] internal SafeLocalAllocation(int size) : base(true) { #pragma warning suppress 56523 IntPtr pointer = SafeNativeMethods.LocalAlloc(SafeNativeMethods.LMEM_ZEROINIT, size); SetHandle(pointer); } #if WSAT_UI [SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)] internal SafeLocalAllocation(object source) : base(true) { #pragma warning suppress 56523 IntPtr pointer = SafeNativeMethods.LocalAlloc(SafeNativeMethods.LMEM_ZEROINIT, Marshal.SizeOf(source)); SetHandle(pointer); Marshal.StructureToPtr( source, handle, false); } #endif internal void Copy(byte[] source, int startIndex, int count) { System.Runtime.InteropServices.Marshal.Copy( source, startIndex, handle, count); } protected override bool ReleaseHandle() { #pragma warning suppress 56523 IntPtr r = SafeNativeMethods.LocalFree(handle); return r == IntPtr.Zero; } } } // 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
- SpellerStatusTable.cs
- BrowserTree.cs
- MailAddressCollection.cs
- XmlSchemaElement.cs
- XmlConverter.cs
- ClientEventManager.cs
- FormConverter.cs
- RegisteredScript.cs
- Model3D.cs
- RowToFieldTransformer.cs
- ClrPerspective.cs
- EmbeddedMailObjectsCollection.cs
- DbConnectionPoolGroupProviderInfo.cs
- CompositeFontInfo.cs
- ContentDisposition.cs
- AutoResizedEvent.cs
- ImplicitInputBrush.cs
- HttpServerChannel.cs
- HostingEnvironmentException.cs
- FontFamily.cs
- DBCSCodePageEncoding.cs
- StringConverter.cs
- CellTreeNodeVisitors.cs
- TextEffect.cs
- securestring.cs
- XmlSerializerAssemblyAttribute.cs
- DuplicateWaitObjectException.cs
- FullTextBreakpoint.cs
- SuppressMessageAttribute.cs
- xamlnodes.cs
- Subtract.cs
- Number.cs
- AncillaryOps.cs
- AppModelKnownContentFactory.cs
- ContentPlaceHolder.cs
- VerticalAlignConverter.cs
- CreateParams.cs
- CollectionContainer.cs
- TemplateEditingVerb.cs
- WorkflowIdleElement.cs
- BufferModesCollection.cs
- PhysicalOps.cs
- UnSafeCharBuffer.cs
- WebPart.cs
- DefaultTraceListener.cs
- ModulesEntry.cs
- GenericTextProperties.cs
- RoutingBehavior.cs
- HitTestFilterBehavior.cs
- TraceSection.cs
- MonthCalendar.cs
- WebPartPersonalization.cs
- C14NUtil.cs
- RadioButton.cs
- FormsAuthenticationTicket.cs
- DockEditor.cs
- RuntimeEnvironment.cs
- CodeNamespaceImport.cs
- DesignerCommandSet.cs
- Encoder.cs
- DifferencingCollection.cs
- SqlSelectStatement.cs
- BookmarkScopeManager.cs
- ZipIOCentralDirectoryFileHeader.cs
- FileDataSourceCache.cs
- DynamicVirtualDiscoSearcher.cs
- FilteredSchemaElementLookUpTable.cs
- ByteRangeDownloader.cs
- Int64KeyFrameCollection.cs
- ToolStripDesignerUtils.cs
- SrgsElementFactoryCompiler.cs
- StreamWithDictionary.cs
- DataSourceCache.cs
- AssemblyAttributesGoHere.cs
- MarkedHighlightComponent.cs
- HScrollBar.cs
- RuntimeCompatibilityAttribute.cs
- InstancePersistence.cs
- FilteredAttributeCollection.cs
- DataRelation.cs
- HttpConfigurationContext.cs
- ColorTransform.cs
- ImageMetadata.cs
- DynamicHyperLink.cs
- SystemColors.cs
- RowToFieldTransformer.cs
- RegisteredScript.cs
- IMembershipProvider.cs
- PointKeyFrameCollection.cs
- BookmarkScope.cs
- GridItemCollection.cs
- FaultDescriptionCollection.cs
- RequestCacheEntry.cs
- InputManager.cs
- OptimalBreakSession.cs
- GeometryCollection.cs
- ResXDataNode.cs
- Internal.cs
- HGlobalSafeHandle.cs
- SQLInt32.cs