Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Diagnostics / Eventing / Reader / CoTaskMemUnicodeSafeHandle.cs / 1305376 / CoTaskMemUnicodeSafeHandle.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: CoTaskMemUnicodeSafeHandle ** ** Purpose: ** This internal class is a SafeHandle implementation over a ** native CoTaskMem allocated via SecureStringToCoTaskMemUnicode. ** ============================================================*/ 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 CoTaskMemUnicodeSafeHandle : SafeHandle { internal CoTaskMemUnicodeSafeHandle() : base(IntPtr.Zero, true) { } internal CoTaskMemUnicodeSafeHandle(IntPtr handle, bool ownsHandle) : base(IntPtr.Zero, ownsHandle) { SetHandle(handle); } 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.ZeroFreeCoTaskMemUnicode(handle); handle = IntPtr.Zero; return true; } // DONT compare CoTaskMemUnicodeSafeHandle with CoTaskMemUnicodeSafeHandle.Zero // use IsInvalid instead. Zero is provided where a NULL handle needed public static CoTaskMemUnicodeSafeHandle Zero { get { return new CoTaskMemUnicodeSafeHandle(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: CoTaskMemUnicodeSafeHandle ** ** Purpose: ** This internal class is a SafeHandle implementation over a ** native CoTaskMem allocated via SecureStringToCoTaskMemUnicode. ** ============================================================*/ 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 CoTaskMemUnicodeSafeHandle : SafeHandle { internal CoTaskMemUnicodeSafeHandle() : base(IntPtr.Zero, true) { } internal CoTaskMemUnicodeSafeHandle(IntPtr handle, bool ownsHandle) : base(IntPtr.Zero, ownsHandle) { SetHandle(handle); } 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.ZeroFreeCoTaskMemUnicode(handle); handle = IntPtr.Zero; return true; } // DONT compare CoTaskMemUnicodeSafeHandle with CoTaskMemUnicodeSafeHandle.Zero // use IsInvalid instead. Zero is provided where a NULL handle needed public static CoTaskMemUnicodeSafeHandle Zero { get { return new CoTaskMemUnicodeSafeHandle(); } } } } // 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
- Int64Converter.cs
- HashJoinQueryOperatorEnumerator.cs
- CustomActivityDesigner.cs
- DataGridViewLinkColumn.cs
- PriorityBindingExpression.cs
- BamlRecordReader.cs
- MULTI_QI.cs
- Int64.cs
- RootProfilePropertySettingsCollection.cs
- PropertyTab.cs
- SqlXmlStorage.cs
- ClientBuildManager.cs
- SQLGuid.cs
- XmlDataLoader.cs
- NetSectionGroup.cs
- DbQueryCommandTree.cs
- DataGridViewImageCell.cs
- XmlSerializableWriter.cs
- loginstatus.cs
- GACIdentityPermission.cs
- NamedPipeTransportBindingElement.cs
- LocalizationParserHooks.cs
- Message.cs
- HTTPNotFoundHandler.cs
- ProcessThread.cs
- BuildProviderAppliesToAttribute.cs
- ObjectSecurity.cs
- XmlILTrace.cs
- CapabilitiesUse.cs
- MetadataHelper.cs
- AnimationStorage.cs
- _NativeSSPI.cs
- DrawTreeNodeEventArgs.cs
- DbInsertCommandTree.cs
- VisualTreeHelper.cs
- WithParamAction.cs
- SqlResolver.cs
- ChannelServices.cs
- RegexGroup.cs
- CachedRequestParams.cs
- PointAnimationUsingKeyFrames.cs
- AttributeData.cs
- PropertyChangingEventArgs.cs
- StorageMappingFragment.cs
- CircleHotSpot.cs
- HtmlImageAdapter.cs
- Stacktrace.cs
- FolderBrowserDialogDesigner.cs
- ObservableCollection.cs
- SimpleTableProvider.cs
- TaskForm.cs
- NamedServiceModelExtensionCollectionElement.cs
- PartialCachingControl.cs
- CustomCategoryAttribute.cs
- RowUpdatedEventArgs.cs
- PixelFormat.cs
- X509InitiatorCertificateServiceElement.cs
- SafeSerializationManager.cs
- RecognizedWordUnit.cs
- AnonymousIdentificationSection.cs
- MailMessage.cs
- AssociationEndMember.cs
- DesignerOptionService.cs
- Attachment.cs
- GlobalEventManager.cs
- MonthCalendarDesigner.cs
- TargetParameterCountException.cs
- ActivityStateQuery.cs
- DeviceSpecificDialogCachedState.cs
- arclist.cs
- FontFamily.cs
- XmlTextReaderImplHelpers.cs
- HtmlTable.cs
- DesignerWidgets.cs
- SortedDictionary.cs
- XmlReaderSettings.cs
- CompressEmulationStream.cs
- OptimizerPatterns.cs
- TextTabProperties.cs
- ColumnResizeUndoUnit.cs
- PaginationProgressEventArgs.cs
- ProvidersHelper.cs
- WindowsRebar.cs
- MdImport.cs
- CompressEmulationStream.cs
- DetailsViewUpdateEventArgs.cs
- WindowsIPAddress.cs
- WebBrowserProgressChangedEventHandler.cs
- ControlTemplate.cs
- SerializableAttribute.cs
- TrackingStringDictionary.cs
- XmlMtomReader.cs
- RootProfilePropertySettingsCollection.cs
- HttpCacheVaryByContentEncodings.cs
- PaginationProgressEventArgs.cs
- BufferedReadStream.cs
- SQLChars.cs
- AsnEncodedData.cs
- diagnosticsswitches.cs
- CharacterBufferReference.cs