Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Diagnostics / Eventing / Reader / EventLogPropertySelector.cs / 1305376 / EventLogPropertySelector.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: EventLogPropertySelector ** ** Purpose: ** Public class that encapsulates the information for fast ** access to Event Values of an EventLogRecord. Implements ** the EventPropertyContext abstract class. An instance of this ** class is constructed and then passed to ** EventLogRecord.GetEventPropertyValues. ** ============================================================*/ using System; using System.Collections.Generic; using Microsoft.Win32; namespace System.Diagnostics.Eventing.Reader { ////// Encapsulates the information for fast access to Event Values /// of an EventLogRecord. An instance of this class is constructed /// and then passed to EventLogRecord.GetEventPropertyValues. /// [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public class EventLogPropertySelector : IDisposable { // // access to the data member reference is safe, while // invoking methods on it is marked SecurityCritical as appropriate. // private EventLogHandle renderContextHandleValues; [System.Security.SecurityCritical] public EventLogPropertySelector(IEnumerablepropertyQueries) { EventLogPermissionHolder.GetEventLogPermission().Demand(); if (propertyQueries == null) throw new ArgumentNullException("propertyQueries"); string[] paths; ICollection coll = propertyQueries as ICollection ; if (coll != null) { paths = new string[coll.Count]; coll.CopyTo(paths, 0); } else { List queries; queries = new List (propertyQueries); paths = queries.ToArray(); } renderContextHandleValues = NativeWrapper.EvtCreateRenderContext(paths.Length, paths, UnsafeNativeMethods.EvtRenderContextFlags.EvtRenderContextValues); } internal EventLogHandle Handle { // just returning reference to security critical type, the methods // of that type are protected by SecurityCritical as appropriate. get { return renderContextHandleValues; } } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } [System.Security.SecuritySafeCritical] protected virtual void Dispose(bool disposing) { if (disposing) { EventLogPermissionHolder.GetEventLogPermission().Demand(); } if (renderContextHandleValues != null && !renderContextHandleValues.IsInvalid) renderContextHandleValues.Dispose(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: EventLogPropertySelector ** ** Purpose: ** Public class that encapsulates the information for fast ** access to Event Values of an EventLogRecord. Implements ** the EventPropertyContext abstract class. An instance of this ** class is constructed and then passed to ** EventLogRecord.GetEventPropertyValues. ** ============================================================*/ using System; using System.Collections.Generic; using Microsoft.Win32; namespace System.Diagnostics.Eventing.Reader { /// /// Encapsulates the information for fast access to Event Values /// of an EventLogRecord. An instance of this class is constructed /// and then passed to EventLogRecord.GetEventPropertyValues. /// [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public class EventLogPropertySelector : IDisposable { // // access to the data member reference is safe, while // invoking methods on it is marked SecurityCritical as appropriate. // private EventLogHandle renderContextHandleValues; [System.Security.SecurityCritical] public EventLogPropertySelector(IEnumerablepropertyQueries) { EventLogPermissionHolder.GetEventLogPermission().Demand(); if (propertyQueries == null) throw new ArgumentNullException("propertyQueries"); string[] paths; ICollection coll = propertyQueries as ICollection ; if (coll != null) { paths = new string[coll.Count]; coll.CopyTo(paths, 0); } else { List queries; queries = new List (propertyQueries); paths = queries.ToArray(); } renderContextHandleValues = NativeWrapper.EvtCreateRenderContext(paths.Length, paths, UnsafeNativeMethods.EvtRenderContextFlags.EvtRenderContextValues); } internal EventLogHandle Handle { // just returning reference to security critical type, the methods // of that type are protected by SecurityCritical as appropriate. get { return renderContextHandleValues; } } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } [System.Security.SecuritySafeCritical] protected virtual void Dispose(bool disposing) { if (disposing) { EventLogPermissionHolder.GetEventLogPermission().Demand(); } if (renderContextHandleValues != null && !renderContextHandleValues.IsInvalid) renderContextHandleValues.Dispose(); } } } // 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
- ConfigurationStrings.cs
- ReachDocumentPageSerializerAsync.cs
- InstancePersistenceCommand.cs
- Faults.cs
- RequestResizeEvent.cs
- PersonalizationProviderHelper.cs
- StructuredCompositeActivityDesigner.cs
- PathFigure.cs
- WebPartManager.cs
- UnsafeNativeMethods.cs
- Stylus.cs
- EmptyArray.cs
- ProfessionalColors.cs
- ScriptRegistrationManager.cs
- DynamicValidatorEventArgs.cs
- Utility.cs
- FileSystemInfo.cs
- JsonGlobals.cs
- OracleInfoMessageEventArgs.cs
- FullTextLine.cs
- RelatedCurrencyManager.cs
- TableFieldsEditor.cs
- DataGridViewRowHeaderCell.cs
- JsonGlobals.cs
- WindowsSolidBrush.cs
- SchemaSetCompiler.cs
- Point3D.cs
- CopyNodeSetAction.cs
- ProfilePropertyMetadata.cs
- FixedSOMPageElement.cs
- ProcessManager.cs
- StoreUtilities.cs
- DesignerDataTableBase.cs
- BuildDependencySet.cs
- InstanceDescriptor.cs
- ProcessHostServerConfig.cs
- RemotingServices.cs
- InstancePersistenceCommandException.cs
- PenContext.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- DummyDataSource.cs
- MenuRendererClassic.cs
- VirtualPathProvider.cs
- SafeReversePInvokeHandle.cs
- StaticExtensionConverter.cs
- HwndStylusInputProvider.cs
- DescendantOverDescendantQuery.cs
- SmiConnection.cs
- TabControlAutomationPeer.cs
- FreezableDefaultValueFactory.cs
- EncoderExceptionFallback.cs
- XslCompiledTransform.cs
- ProviderManager.cs
- Int32AnimationUsingKeyFrames.cs
- IssuedSecurityTokenParameters.cs
- ConnectionOrientedTransportChannelListener.cs
- InputElement.cs
- InstanceKey.cs
- DataListItemEventArgs.cs
- Mutex.cs
- PtsPage.cs
- Viewport2DVisual3D.cs
- PKCS1MaskGenerationMethod.cs
- MonitoringDescriptionAttribute.cs
- ProjectionNode.cs
- QilGenerator.cs
- TokenBasedSetEnumerator.cs
- LexicalChunk.cs
- XmlSerializerVersionAttribute.cs
- RuntimeHandles.cs
- ColorAnimationBase.cs
- QueryCursorEventArgs.cs
- AnimationException.cs
- HwndSourceKeyboardInputSite.cs
- FocusWithinProperty.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- ImageBrush.cs
- Delegate.cs
- AssertSection.cs
- JapaneseLunisolarCalendar.cs
- EditorPart.cs
- SqlDataReaderSmi.cs
- AppSettingsReader.cs
- DataGridLinkButton.cs
- StickyNote.cs
- QuaternionAnimationBase.cs
- ColumnHeaderConverter.cs
- CreateParams.cs
- Cursor.cs
- ResourceWriter.cs
- wgx_render.cs
- Rotation3DAnimationUsingKeyFrames.cs
- Color.cs
- DtdParser.cs
- FunctionDescription.cs
- BitmapImage.cs
- ISO2022Encoding.cs
- BinaryObjectReader.cs
- SystemResources.cs
- ValueQuery.cs