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
- FormsAuthenticationUser.cs
- DataMisalignedException.cs
- HttpTransportSecurity.cs
- HitTestResult.cs
- SystemResourceKey.cs
- DataSourceCacheDurationConverter.cs
- CodeDomSerializationProvider.cs
- ToolStripDropDown.cs
- Type.cs
- InputBinding.cs
- Msec.cs
- SupportsEventValidationAttribute.cs
- ScrollViewerAutomationPeer.cs
- XmlAttributeOverrides.cs
- XMLDiffLoader.cs
- TextRunTypographyProperties.cs
- FontWeight.cs
- ToolboxItemCollection.cs
- CompositeTypefaceMetrics.cs
- RequestSecurityTokenForRemoteTokenFactory.cs
- RectValueSerializer.cs
- XmlChildEnumerator.cs
- ItemCheckedEvent.cs
- OneOfElement.cs
- ContainerTracking.cs
- DummyDataSource.cs
- DataGridTableCollection.cs
- BitStack.cs
- DataTemplateKey.cs
- TypeLibConverter.cs
- ErrorsHelper.cs
- DelegatingHeader.cs
- DoubleKeyFrameCollection.cs
- InvalidProgramException.cs
- TraceContextEventArgs.cs
- FtpRequestCacheValidator.cs
- ZipIOBlockManager.cs
- ZipIOModeEnforcingStream.cs
- LineServicesRun.cs
- DataPagerCommandEventArgs.cs
- PartialTrustVisibleAssembliesSection.cs
- RegisterResponseInfo.cs
- ContainerVisual.cs
- BreakSafeBase.cs
- ObjectConverter.cs
- LoginView.cs
- ConsumerConnectionPointCollection.cs
- Model3DCollection.cs
- ComboBox.cs
- HttpServerVarsCollection.cs
- CacheMode.cs
- OleDbParameter.cs
- GridEntryCollection.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- DataGridViewTextBoxCell.cs
- PixelShader.cs
- ThreadExceptionDialog.cs
- ExtendedPropertyCollection.cs
- DeflateStream.cs
- CorePropertiesFilter.cs
- InputDevice.cs
- ToolStripDropDownButton.cs
- SoapServerProtocol.cs
- RadioButtonAutomationPeer.cs
- AstNode.cs
- DataGridViewHeaderCell.cs
- BinarySerializer.cs
- WebPartUtil.cs
- QuotedPairReader.cs
- DummyDataSource.cs
- XmlHierarchicalDataSourceView.cs
- TempFiles.cs
- MsmqIntegrationProcessProtocolHandler.cs
- SafePointer.cs
- CapabilitiesRule.cs
- XmlIlGenerator.cs
- ManifestSignedXml.cs
- CompoundFileStreamReference.cs
- Renderer.cs
- PageBreakRecord.cs
- PTProvider.cs
- UIntPtr.cs
- Mappings.cs
- Int32RectValueSerializer.cs
- BindingGroup.cs
- TextBoxBase.cs
- IDataContractSurrogate.cs
- InvalidProgramException.cs
- X509Chain.cs
- UIntPtr.cs
- VectorCollectionValueSerializer.cs
- MenuItemStyleCollection.cs
- BitmapCache.cs
- ProcessingInstructionAction.cs
- TextSelectionHelper.cs
- PointIndependentAnimationStorage.cs
- RelatedPropertyManager.cs
- BitStack.cs
- Base64Stream.cs
- PointCollection.cs