Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Diagnostics / Eventing / Reader / CoTaskMemSafeHandle.cs / 1305376 / CoTaskMemSafeHandle.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: CoTaskMemSafeHandle ** ** Purpose: ** This internal class is a SafeHandle implementation over a ** native CoTaskMem allocated via StringToCoTaskMemAuto. ** ============================================================*/ using System; using System.Runtime.InteropServices; using System.Security.Permissions; namespace System.Diagnostics.Eventing.Reader { // // Marked as SecurityCritical due to link demands from inherited // SafeHandle members. // #pragma warning disable 618 // Have not migrated to v4 transparency yet [System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)] #pragma warning restore 618 internal sealed class CoTaskMemSafeHandle : SafeHandle { internal CoTaskMemSafeHandle() : base(IntPtr.Zero, true) { } internal void SetMemory(IntPtr handle) { SetHandle(handle); } internal IntPtr GetMemory() { return handle; } public override bool IsInvalid { get { return IsClosed || handle == IntPtr.Zero; } } protected override bool ReleaseHandle() { Marshal.FreeCoTaskMem(handle); handle = IntPtr.Zero; return true; } // // DONT compare CoTaskMemSafeHandle with CoTaskMemSafeHandle.Zero // use IsInvalid instead. Zero is provided where a NULL handle needed // public static CoTaskMemSafeHandle Zero { get { return new CoTaskMemSafeHandle(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: CoTaskMemSafeHandle ** ** Purpose: ** This internal class is a SafeHandle implementation over a ** native CoTaskMem allocated via StringToCoTaskMemAuto. ** ============================================================*/ using System; using System.Runtime.InteropServices; using System.Security.Permissions; namespace System.Diagnostics.Eventing.Reader { // // Marked as SecurityCritical due to link demands from inherited // SafeHandle members. // #pragma warning disable 618 // Have not migrated to v4 transparency yet [System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)] #pragma warning restore 618 internal sealed class CoTaskMemSafeHandle : SafeHandle { internal CoTaskMemSafeHandle() : base(IntPtr.Zero, true) { } internal void SetMemory(IntPtr handle) { SetHandle(handle); } internal IntPtr GetMemory() { return handle; } public override bool IsInvalid { get { return IsClosed || handle == IntPtr.Zero; } } protected override bool ReleaseHandle() { Marshal.FreeCoTaskMem(handle); handle = IntPtr.Zero; return true; } // // DONT compare CoTaskMemSafeHandle with CoTaskMemSafeHandle.Zero // use IsInvalid instead. Zero is provided where a NULL handle needed // public static CoTaskMemSafeHandle Zero { get { return new CoTaskMemSafeHandle(); } } } } // 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
- FixedSOMTableCell.cs
- XmlReaderSettings.cs
- DataSourceCacheDurationConverter.cs
- JsonEncodingStreamWrapper.cs
- XmlNotation.cs
- ADConnectionHelper.cs
- QuaternionAnimationBase.cs
- StrokeNodeEnumerator.cs
- LabelDesigner.cs
- MeshGeometry3D.cs
- HealthMonitoringSectionHelper.cs
- EdmFunction.cs
- ErrorProvider.cs
- TabItem.cs
- ITextView.cs
- Speller.cs
- TiffBitmapDecoder.cs
- ToolStripLocationCancelEventArgs.cs
- ThreadExceptionDialog.cs
- WebEvents.cs
- WindowShowOrOpenTracker.cs
- DataKey.cs
- CodeDomSerializer.cs
- DbTransaction.cs
- TextSelectionHelper.cs
- MappingModelBuildProvider.cs
- XmlBinaryWriter.cs
- DisposableCollectionWrapper.cs
- ChannelServices.cs
- TypefaceMap.cs
- WindowsGraphics.cs
- SecUtil.cs
- ProcessModuleDesigner.cs
- AtomicFile.cs
- State.cs
- ToolStripButton.cs
- sqlpipe.cs
- PrintDialogException.cs
- XamlPointCollectionSerializer.cs
- ConfigurationLoaderException.cs
- DayRenderEvent.cs
- ObjectListItemCollection.cs
- CacheDependency.cs
- XmlSchemaAnnotation.cs
- xmlsaver.cs
- DbConnectionPool.cs
- DisplayMemberTemplateSelector.cs
- SecurityKeyType.cs
- Brush.cs
- UserControl.cs
- SafeCryptoHandles.cs
- AuthenticationModuleElement.cs
- Bitmap.cs
- PeerObject.cs
- SystemIcmpV4Statistics.cs
- VolatileEnlistmentState.cs
- MarshalDirectiveException.cs
- SqlCachedBuffer.cs
- RootProfilePropertySettingsCollection.cs
- TextElement.cs
- ContainerAction.cs
- MultiPageTextView.cs
- DecoderReplacementFallback.cs
- AssemblyBuilderData.cs
- ListView.cs
- DelayedRegex.cs
- X509CertificateStore.cs
- TemplateApplicationHelper.cs
- HandlerFactoryWrapper.cs
- GB18030Encoding.cs
- TextServicesLoader.cs
- SemanticAnalyzer.cs
- RuleSetDialog.cs
- DesignerCategoryAttribute.cs
- XmlArrayItemAttributes.cs
- GetPageNumberCompletedEventArgs.cs
- XmlReaderDelegator.cs
- Vars.cs
- listitem.cs
- SqlUdtInfo.cs
- HebrewCalendar.cs
- formatstringdialog.cs
- StreamWriter.cs
- DataViewSetting.cs
- GridViewCancelEditEventArgs.cs
- RequestCachePolicyConverter.cs
- WindowsIdentity.cs
- SplashScreen.cs
- Image.cs
- RequestNavigateEventArgs.cs
- InternalCache.cs
- XamlTypeMapper.cs
- AuthenticationSection.cs
- streamingZipPartStream.cs
- OracleConnectionStringBuilder.cs
- Stroke.cs
- VectorValueSerializer.cs
- UnsafeNativeMethods.cs
- AuthenticationModulesSection.cs
- _NegoState.cs