Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / clr / src / BCL / System / Security / Cryptography / X509Certificates / safex509handles.cs / 1 / safex509handles.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // SafeX509Handles.cs // namespace System.Security.Cryptography.X509Certificates { using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Runtime.ConstrainedExecution; using Microsoft.Win32.SafeHandles; // Since we need sometimes to delete the key container associated with a cert // context, the handle used in this class is actually a pointer // to a CERT_CTX unmanaged structure defined in COMX509Certificate.h internal sealed class SafeCertContextHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeCertContextHandle() : base (true) {} // 0 is an Invalid Handle internal SafeCertContextHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeCertContextHandle InvalidHandle { get { return new SafeCertContextHandle(IntPtr.Zero); } } internal IntPtr pCertContext { get { if (handle == IntPtr.Zero) return IntPtr.Zero; return Marshal.ReadIntPtr(handle); } } // This method handles the case where pCert == NULL [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreePCertContext(IntPtr pCert); override protected bool ReleaseHandle() { _FreePCertContext(handle); return true; } } internal sealed class SafeCertStoreHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeCertStoreHandle() : base (true) {} // 0 is an Invalid Handle internal SafeCertStoreHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeCertStoreHandle InvalidHandle { get { return new SafeCertStoreHandle(IntPtr.Zero); } } // This method handles the case where hCertStore == NULL [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreeCertStoreContext(IntPtr hCertStore); override protected bool ReleaseHandle() { _FreeCertStoreContext(handle); return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // SafeX509Handles.cs // namespace System.Security.Cryptography.X509Certificates { using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Runtime.ConstrainedExecution; using Microsoft.Win32.SafeHandles; // Since we need sometimes to delete the key container associated with a cert // context, the handle used in this class is actually a pointer // to a CERT_CTX unmanaged structure defined in COMX509Certificate.h internal sealed class SafeCertContextHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeCertContextHandle() : base (true) {} // 0 is an Invalid Handle internal SafeCertContextHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeCertContextHandle InvalidHandle { get { return new SafeCertContextHandle(IntPtr.Zero); } } internal IntPtr pCertContext { get { if (handle == IntPtr.Zero) return IntPtr.Zero; return Marshal.ReadIntPtr(handle); } } // This method handles the case where pCert == NULL [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreePCertContext(IntPtr pCert); override protected bool ReleaseHandle() { _FreePCertContext(handle); return true; } } internal sealed class SafeCertStoreHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeCertStoreHandle() : base (true) {} // 0 is an Invalid Handle internal SafeCertStoreHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeCertStoreHandle InvalidHandle { get { return new SafeCertStoreHandle(IntPtr.Zero); } } // This method handles the case where hCertStore == NULL [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreeCertStoreContext(IntPtr hCertStore); override protected bool ReleaseHandle() { _FreeCertStoreContext(handle); return true; } } } // 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
- DesignerActionGlyph.cs
- FileAuthorizationModule.cs
- WorkflowCommandExtensionItem.cs
- TimeSpanParse.cs
- StringCollectionMarkupSerializer.cs
- HtmlControl.cs
- XmlElement.cs
- Splitter.cs
- ConfigurationSectionHelper.cs
- SystemNetworkInterface.cs
- EncoderParameter.cs
- IntegerCollectionEditor.cs
- IdentifierCreationService.cs
- MediaContextNotificationWindow.cs
- MSG.cs
- MeasureItemEvent.cs
- IndexOutOfRangeException.cs
- MULTI_QI.cs
- TrackBar.cs
- arabicshape.cs
- SubstitutionDesigner.cs
- DoubleStorage.cs
- RootBrowserWindowAutomationPeer.cs
- ImageAttributes.cs
- EventLogEntryCollection.cs
- TreeNodeConverter.cs
- PriorityQueue.cs
- HealthMonitoringSectionHelper.cs
- ToolStripSeparatorRenderEventArgs.cs
- PermissionListSet.cs
- MetafileHeader.cs
- LinearKeyFrames.cs
- RenamedEventArgs.cs
- CodeIdentifiers.cs
- OdbcHandle.cs
- ChangeProcessor.cs
- ValidatingPropertiesEventArgs.cs
- SQLStringStorage.cs
- ExceptionRoutedEventArgs.cs
- RangeValuePatternIdentifiers.cs
- EdmFunction.cs
- DataGridViewTextBoxCell.cs
- LocationSectionRecord.cs
- BufferedWebEventProvider.cs
- DataTablePropertyDescriptor.cs
- Attribute.cs
- ChannelBase.cs
- regiisutil.cs
- CommandPlan.cs
- SqlDataSourceView.cs
- CommandField.cs
- LinkUtilities.cs
- XmlElementAttribute.cs
- NamespaceList.cs
- TraceSection.cs
- DelegatingMessage.cs
- HttpSocketManager.cs
- WebControlToolBoxItem.cs
- SemanticResolver.cs
- TimeoutException.cs
- XmlStringTable.cs
- XsdBuildProvider.cs
- DataTableMapping.cs
- Range.cs
- ExtensionsSection.cs
- PrivilegeNotHeldException.cs
- BamlLocalizabilityResolver.cs
- TextParagraph.cs
- ExceptionUtil.cs
- Helper.cs
- SessionStateModule.cs
- TextAnchor.cs
- FilterUserControlBase.cs
- LocatorPartList.cs
- ExtensionElement.cs
- ClientTargetCollection.cs
- ImageFormat.cs
- HopperCache.cs
- CopyCodeAction.cs
- BufferedReceiveElement.cs
- UnicastIPAddressInformationCollection.cs
- SynchronizationContext.cs
- InputLanguageProfileNotifySink.cs
- SchemaComplexType.cs
- DebugView.cs
- SendKeys.cs
- HostProtectionPermission.cs
- ITreeGenerator.cs
- ConfigsHelper.cs
- SignedXml.cs
- AtomServiceDocumentSerializer.cs
- ItemDragEvent.cs
- WindowsSpinner.cs
- GenericPrincipal.cs
- SQLBytes.cs
- StoreAnnotationsMap.cs
- ImageListStreamer.cs
- HyperLinkField.cs
- XmlUtf8RawTextWriter.cs
- SafeProcessHandle.cs