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
- WebPartDeleteVerb.cs
- VerificationException.cs
- ZipIOCentralDirectoryFileHeader.cs
- SoapCommonClasses.cs
- FilteredAttributeCollection.cs
- MediaElementAutomationPeer.cs
- BigInt.cs
- WebControlAdapter.cs
- OptimizerPatterns.cs
- DataControlPagerLinkButton.cs
- HandleExceptionArgs.cs
- DiagnosticStrings.cs
- SqlDataSourceWizardForm.cs
- GacUtil.cs
- DetailsView.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- ProfileGroupSettingsCollection.cs
- FlowDocumentReader.cs
- SkinBuilder.cs
- SqlProcedureAttribute.cs
- MappingMetadataHelper.cs
- ListParaClient.cs
- ImageCodecInfo.cs
- WebPartAddingEventArgs.cs
- MailHeaderInfo.cs
- CompilerTypeWithParams.cs
- StateBag.cs
- PartialTrustVisibleAssemblyCollection.cs
- BinaryCommonClasses.cs
- ResourceBinder.cs
- ItemsControl.cs
- Rectangle.cs
- AnyAllSearchOperator.cs
- SuppressMergeCheckAttribute.cs
- ProtectedConfiguration.cs
- AttributeConverter.cs
- ProfessionalColorTable.cs
- InputLanguageManager.cs
- ListViewInsertEventArgs.cs
- SqlReferenceCollection.cs
- GorillaCodec.cs
- ErrorFormatter.cs
- DataSourceDesigner.cs
- LabelEditEvent.cs
- PeerNameResolver.cs
- AttributedMetaModel.cs
- ListDictionaryInternal.cs
- ParameterCollection.cs
- MonthCalendarDesigner.cs
- ActivityStateQuery.cs
- StrokeCollectionDefaultValueFactory.cs
- Icon.cs
- SystemWebSectionGroup.cs
- SQLSingleStorage.cs
- Visitors.cs
- FillErrorEventArgs.cs
- UnauthorizedWebPart.cs
- Int32Rect.cs
- AliasedSlot.cs
- StoreItemCollection.cs
- SurrogateEncoder.cs
- StrongNameUtility.cs
- Point.cs
- VisualTreeFlattener.cs
- TrustLevel.cs
- FontEmbeddingManager.cs
- NetworkAddressChange.cs
- ColorConvertedBitmap.cs
- Paragraph.cs
- UserControlFileEditor.cs
- PropertyGridDesigner.cs
- WpfPayload.cs
- MDIWindowDialog.cs
- WSTransactionSection.cs
- LongPath.cs
- UIPermission.cs
- ComponentRenameEvent.cs
- PartialCachingControl.cs
- CellCreator.cs
- InvalidWMPVersionException.cs
- Terminate.cs
- UserControlCodeDomTreeGenerator.cs
- ImagingCache.cs
- ConstraintStruct.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- StatusStrip.cs
- PrimitiveCodeDomSerializer.cs
- HtmlShimManager.cs
- ConfigurationStrings.cs
- DelegateSerializationHolder.cs
- DefaultClaimSet.cs
- RectangleGeometry.cs
- BamlCollectionHolder.cs
- SID.cs
- DetailsViewInsertEventArgs.cs
- RawStylusInput.cs
- nulltextnavigator.cs
- EntityDataSource.cs
- ChangeTracker.cs
- TokenBasedSet.cs