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
- RemotingException.cs
- xsdvalidator.cs
- MobilePage.cs
- SwitchElementsCollection.cs
- SchemaRegistration.cs
- QueryContinueDragEvent.cs
- DefaultObjectMappingItemCollection.cs
- CacheAxisQuery.cs
- PageThemeParser.cs
- XmlILTrace.cs
- GridItemProviderWrapper.cs
- TextElementCollectionHelper.cs
- StorageAssociationSetMapping.cs
- IsolatedStorageException.cs
- TextSelectionProcessor.cs
- AttachedPropertyMethodSelector.cs
- Compress.cs
- RemotingClientProxy.cs
- SurrogateChar.cs
- RemotingAttributes.cs
- CorrelationManager.cs
- Switch.cs
- HandleValueEditor.cs
- ZipIOExtraFieldElement.cs
- ToolStripProgressBar.cs
- ProviderCollection.cs
- CngKeyCreationParameters.cs
- SimpleBitVector32.cs
- CompilerGlobalScopeAttribute.cs
- TextEditorTyping.cs
- WeakReferenceList.cs
- TextTreeRootNode.cs
- VScrollBar.cs
- CompoundFileReference.cs
- DefaultTextStoreTextComposition.cs
- IntAverageAggregationOperator.cs
- SafeNativeMethods.cs
- DivideByZeroException.cs
- Int32Rect.cs
- ProfilePropertySettingsCollection.cs
- ListenerServiceInstallComponent.cs
- TextParagraphProperties.cs
- HandlerMappingMemo.cs
- SID.cs
- Win32SafeHandles.cs
- PrePrepareMethodAttribute.cs
- HtmlCalendarAdapter.cs
- ServiceContractAttribute.cs
- FlowDecision.cs
- loginstatus.cs
- WebPartAddingEventArgs.cs
- CryptoApi.cs
- DotExpr.cs
- ServicePoint.cs
- DrawingContextWalker.cs
- AdapterDictionary.cs
- EntityWithChangeTrackerStrategy.cs
- OutputCacheProfileCollection.cs
- CertificateManager.cs
- SafeFileMappingHandle.cs
- MsmqHostedTransportConfiguration.cs
- StoreItemCollection.cs
- RichTextBox.cs
- DataGridViewButtonColumn.cs
- ReaderContextStackData.cs
- Panel.cs
- Grid.cs
- WindowProviderWrapper.cs
- MetadataStore.cs
- SqlCommand.cs
- PrintingPermission.cs
- PageCatalogPartDesigner.cs
- XmlEntity.cs
- PartialList.cs
- QueryOutputWriter.cs
- ClientScriptItemCollection.cs
- FileUpload.cs
- UIElementParaClient.cs
- PropertyCollection.cs
- Column.cs
- DrawTreeNodeEventArgs.cs
- VolatileResourceManager.cs
- FloaterBaseParaClient.cs
- SignatureResourcePool.cs
- XmlTextEncoder.cs
- NamespaceImport.cs
- TypeConverterValueSerializer.cs
- HuffmanTree.cs
- EqualityComparer.cs
- EncryptedPackageFilter.cs
- TheQuery.cs
- LocalBuilder.cs
- SqlFlattener.cs
- XMLSchema.cs
- ExpandedWrapper.cs
- HtmlContainerControl.cs
- FileAuthorizationModule.cs
- HMACSHA1.cs
- StyleXamlTreeBuilder.cs
- MergeEnumerator.cs