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
- PropertyMapper.cs
- OrderByBuilder.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- AsyncResult.cs
- MaterialCollection.cs
- DataGridViewCellStyle.cs
- RegisteredExpandoAttribute.cs
- OleDbCommand.cs
- AutomationElement.cs
- RecognizedPhrase.cs
- DataColumnMapping.cs
- SqlParameter.cs
- LogicalExpr.cs
- BaseTemplateCodeDomTreeGenerator.cs
- TableLayoutPanel.cs
- SchemaSetCompiler.cs
- FixedTextContainer.cs
- TimeSpanStorage.cs
- FrameSecurityDescriptor.cs
- TypeNameParser.cs
- Pts.cs
- Dynamic.cs
- PageParser.cs
- DataServices.cs
- EventProviderWriter.cs
- XmlSerializerNamespaces.cs
- CodeStatement.cs
- StoreItemCollection.cs
- TextFindEngine.cs
- Serialization.cs
- SslStreamSecurityUpgradeProvider.cs
- DoubleAnimationUsingKeyFrames.cs
- SRGSCompiler.cs
- ValueQuery.cs
- DbException.cs
- CodeAttributeArgument.cs
- ExtenderProvidedPropertyAttribute.cs
- ProviderConnectionPointCollection.cs
- TTSEngineProxy.cs
- CharConverter.cs
- PixelFormatConverter.cs
- SecurityUtils.cs
- MultiBinding.cs
- GcHandle.cs
- ActivationWorker.cs
- NamespaceInfo.cs
- EntitySqlQueryState.cs
- FlowNode.cs
- Renderer.cs
- __ConsoleStream.cs
- ReferenceSchema.cs
- VectorAnimationUsingKeyFrames.cs
- OleDbCommandBuilder.cs
- RuntimeConfig.cs
- ObjectPropertyMapping.cs
- OpacityConverter.cs
- CultureNotFoundException.cs
- TextRunProperties.cs
- WebSysDescriptionAttribute.cs
- UniqueEventHelper.cs
- Preprocessor.cs
- Message.cs
- WebPartCloseVerb.cs
- TextRunCacheImp.cs
- MachineKeyConverter.cs
- MaterialGroup.cs
- DataSourceCache.cs
- input.cs
- DataViewListener.cs
- BookmarkScope.cs
- XmlReflectionImporter.cs
- IRCollection.cs
- DesignerDataView.cs
- StagingAreaInputItem.cs
- RegularExpressionValidator.cs
- GAC.cs
- NameObjectCollectionBase.cs
- Registry.cs
- FillErrorEventArgs.cs
- RewritingProcessor.cs
- ObjectViewEntityCollectionData.cs
- RangeValuePattern.cs
- ProxyManager.cs
- SqlConnectionHelper.cs
- PropertyTabAttribute.cs
- PenCursorManager.cs
- KeySpline.cs
- Transform3DGroup.cs
- FunctionNode.cs
- MetricEntry.cs
- Timeline.cs
- EnumConverter.cs
- Deserializer.cs
- ClientScriptManager.cs
- ShimAsPublicXamlType.cs
- MultiPageTextView.cs
- updatecommandorderer.cs
- VisualBasicSettings.cs
- ApplicationFileCodeDomTreeGenerator.cs
- LinkButton.cs