Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RuntimeConfig.cs
- ObjectListItem.cs
- CurrentTimeZone.cs
- HtmlHead.cs
- Buffer.cs
- Parsers.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- login.cs
- GuidelineSet.cs
- ContextMarshalException.cs
- SymbolEqualComparer.cs
- AuthorizationRule.cs
- BaseCollection.cs
- DebugInfo.cs
- FlagsAttribute.cs
- BoolExpressionVisitors.cs
- SHA512Managed.cs
- PropertyPath.cs
- ItemCollection.cs
- EntityContainerEntitySet.cs
- GPPOINT.cs
- relpropertyhelper.cs
- RtfFormatStack.cs
- NonBatchDirectoryCompiler.cs
- SecurityDocument.cs
- ObjectStorage.cs
- OleDbTransaction.cs
- StylusSystemGestureEventArgs.cs
- ApplyImportsAction.cs
- AsyncResult.cs
- Byte.cs
- ConvertEvent.cs
- basenumberconverter.cs
- ResourcePart.cs
- LongTypeConverter.cs
- TextSelectionHighlightLayer.cs
- _AutoWebProxyScriptHelper.cs
- SpellCheck.cs
- Baml2006ReaderSettings.cs
- _SslState.cs
- SystemWebSectionGroup.cs
- DockProviderWrapper.cs
- DateTimeFormat.cs
- TrustExchangeException.cs
- FixedBufferAttribute.cs
- FormViewDeletedEventArgs.cs
- SEHException.cs
- XamlVector3DCollectionSerializer.cs
- UnsafeNativeMethods.cs
- SiblingIterators.cs
- PointUtil.cs
- SimpleTextLine.cs
- input.cs
- AsyncCallback.cs
- WebPartDescription.cs
- DataControlPagerLinkButton.cs
- WindowsToolbar.cs
- BooleanConverter.cs
- InputLanguage.cs
- XmlSchemaAnnotation.cs
- GotoExpression.cs
- BaseTreeIterator.cs
- TextClipboardData.cs
- ControlEvent.cs
- CellRelation.cs
- ButtonFieldBase.cs
- ToolStripCodeDomSerializer.cs
- TextWriterTraceListener.cs
- XmlNavigatorStack.cs
- FixUp.cs
- TextContainerHelper.cs
- ErrorWebPart.cs
- MultiPageTextView.cs
- Parser.cs
- WasHostedComPlusFactory.cs
- Material.cs
- RectValueSerializer.cs
- StylusEditingBehavior.cs
- TemplateControl.cs
- XmlExtensionFunction.cs
- ExitEventArgs.cs
- AndAlso.cs
- ApplicationHost.cs
- StylusPlugin.cs
- ConfigurationLocationCollection.cs
- SQLResource.cs
- LinkButton.cs
- fixedPageContentExtractor.cs
- PageBreakRecord.cs
- ServiceBehaviorElementCollection.cs
- EraserBehavior.cs
- FileDialog_Vista.cs
- DBCommandBuilder.cs
- ModelPropertyImpl.cs
- CheckedPointers.cs
- InputMethodStateChangeEventArgs.cs
- XsltSettings.cs
- DiscoveryClientBindingElement.cs
- EngineSiteSapi.cs
- PropertyIDSet.cs