Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlIlGenerator.cs
- DomainLiteralReader.cs
- PasswordRecovery.cs
- XmlSchemaInferenceException.cs
- UnmanagedMarshal.cs
- FormsAuthentication.cs
- sitestring.cs
- SynchronizedInputPattern.cs
- AnnotationResourceCollection.cs
- HttpCacheParams.cs
- ProjectionCamera.cs
- MetadataUtilsSmi.cs
- ToolStripPanelCell.cs
- SqlTransaction.cs
- BreadCrumbTextConverter.cs
- StringDictionaryEditor.cs
- TrailingSpaceComparer.cs
- StorageComplexPropertyMapping.cs
- TextFormatterHost.cs
- XmlElementAttributes.cs
- EntityType.cs
- EndpointFilterProvider.cs
- CodeSnippetCompileUnit.cs
- ClientCultureInfo.cs
- CacheHelper.cs
- PictureBoxDesigner.cs
- ContextActivityUtils.cs
- VirtualDirectoryMappingCollection.cs
- Profiler.cs
- ParallelTimeline.cs
- LabelLiteral.cs
- NamespaceListProperty.cs
- UnsafeNativeMethods.cs
- UnsafeNativeMethods.cs
- HandlerFactoryCache.cs
- DateTimeParse.cs
- TrustManagerMoreInformation.cs
- EditingMode.cs
- Control.cs
- GiveFeedbackEventArgs.cs
- CacheAxisQuery.cs
- WebPartEventArgs.cs
- PaintValueEventArgs.cs
- StylusPointDescription.cs
- SchemaCollectionCompiler.cs
- ThreadAbortException.cs
- ApplicationContext.cs
- MemoryPressure.cs
- WsdlHelpGeneratorElement.cs
- Expressions.cs
- WindowsClientCredential.cs
- SizeConverter.cs
- ContentHostHelper.cs
- TextEditorCharacters.cs
- ErrorTableItemStyle.cs
- TdsParser.cs
- SamlAssertion.cs
- XmlSignificantWhitespace.cs
- StructuredType.cs
- DataGridViewTopLeftHeaderCell.cs
- HandlerFactoryWrapper.cs
- AddInAttribute.cs
- TextCharacters.cs
- KnownTypeAttribute.cs
- UniqueSet.cs
- ForAllOperator.cs
- MemberAccessException.cs
- EventBuilder.cs
- WebServiceErrorEvent.cs
- FixedTextView.cs
- CommandField.cs
- Transform3D.cs
- XmlBinaryReader.cs
- ConfigurationElementCollection.cs
- Column.cs
- TextReader.cs
- StateBag.cs
- ConfigurationManagerHelper.cs
- SimpleFileLog.cs
- RuntimeConfigurationRecord.cs
- GridViewRow.cs
- AutoGeneratedField.cs
- ActivatedMessageQueue.cs
- Automation.cs
- IgnoreFileBuildProvider.cs
- StreamWriter.cs
- XmlAggregates.cs
- PerformanceCounterCategory.cs
- PerformanceCounterLib.cs
- TemplatedMailWebEventProvider.cs
- ToolStripDropDownClosedEventArgs.cs
- RectangleGeometry.cs
- CompositionAdorner.cs
- QuaternionRotation3D.cs
- ClockGroup.cs
- XmlArrayAttribute.cs
- DataGridViewSelectedCellCollection.cs
- Assembly.cs
- BinaryConverter.cs
- HierarchicalDataBoundControl.cs