Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / UIAutomation / UIAutomationClient / System / Windows / Automation / AndCondition.cs / 1305600 / AndCondition.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: // // History: // 10/14/2003 : BrendanM - Created // //--------------------------------------------------------------------------- // PRESHARP: In order to avoid generating warnings about unkown message numbers and unknown pragmas. #pragma warning disable 1634, 1691 using System; using MS.Internal.Automation; using System.Windows.Automation; using System.Runtime.InteropServices; namespace System.Windows.Automation { ////// Condition that checks whether a pattern is currently present for a LogicalElement /// #if (INTERNAL_COMPILE) internal class AndCondition : Condition #else public class AndCondition : Condition #endif { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Constructor to create a condition that is true if all of the sub-conditions are true /// /// One or more sub-condition public AndCondition( params Condition [ ] conditions ) { Misc.ValidateArgumentNonNull( conditions, "conditions" ); Misc.ValidateArgument( conditions.Length >= 2, SRID.MustBeAtLeastTwoConditions ); foreach( Condition condition in conditions ) { Misc.ValidateArgumentNonNull( condition, "conditions" ); } // clone array to prevent accidental tampering _conditions = (Condition [ ]) conditions.Clone(); _conditionArrayHandle = SafeConditionMemoryHandle.AllocateConditionArrayHandle(_conditions); // DangerousGetHandle() reminds us that the IntPtr we get back could be collected/released/recycled. We're safe here, // because the Conditions are structured in a tree, with the root one (which gets passed to the Uia API) keeping all // others - and their associated data - alive. (Recycling isn't an issue as these are immutable classes.) SetMarshalData(new UiaCoreApi.UiaAndOrCondition(UiaCoreApi.ConditionType.And, _conditionArrayHandle.DangerousGetHandle(), _conditions.Length)); } #endregion Constructors //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- #region Public Methods ////// Returns an array of the sub conditions for this condition. /// ////// The returned array is a copy; modifying it will not affect the /// state of the condition. /// public Condition [ ] GetConditions() { return (Condition []) _conditions.Clone(); } #endregion Public Methods //------------------------------------------------------ // // Private Fields // //------------------------------------------------------ #region Private Fields Condition [ ] _conditions; SafeConditionMemoryHandle _conditionArrayHandle; #endregion Private Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: // // History: // 10/14/2003 : BrendanM - Created // //--------------------------------------------------------------------------- // PRESHARP: In order to avoid generating warnings about unkown message numbers and unknown pragmas. #pragma warning disable 1634, 1691 using System; using MS.Internal.Automation; using System.Windows.Automation; using System.Runtime.InteropServices; namespace System.Windows.Automation { ////// Condition that checks whether a pattern is currently present for a LogicalElement /// #if (INTERNAL_COMPILE) internal class AndCondition : Condition #else public class AndCondition : Condition #endif { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Constructor to create a condition that is true if all of the sub-conditions are true /// /// One or more sub-condition public AndCondition( params Condition [ ] conditions ) { Misc.ValidateArgumentNonNull( conditions, "conditions" ); Misc.ValidateArgument( conditions.Length >= 2, SRID.MustBeAtLeastTwoConditions ); foreach( Condition condition in conditions ) { Misc.ValidateArgumentNonNull( condition, "conditions" ); } // clone array to prevent accidental tampering _conditions = (Condition [ ]) conditions.Clone(); _conditionArrayHandle = SafeConditionMemoryHandle.AllocateConditionArrayHandle(_conditions); // DangerousGetHandle() reminds us that the IntPtr we get back could be collected/released/recycled. We're safe here, // because the Conditions are structured in a tree, with the root one (which gets passed to the Uia API) keeping all // others - and their associated data - alive. (Recycling isn't an issue as these are immutable classes.) SetMarshalData(new UiaCoreApi.UiaAndOrCondition(UiaCoreApi.ConditionType.And, _conditionArrayHandle.DangerousGetHandle(), _conditions.Length)); } #endregion Constructors //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- #region Public Methods ////// Returns an array of the sub conditions for this condition. /// ////// The returned array is a copy; modifying it will not affect the /// state of the condition. /// public Condition [ ] GetConditions() { return (Condition []) _conditions.Clone(); } #endregion Public Methods //------------------------------------------------------ // // Private Fields // //------------------------------------------------------ #region Private Fields Condition [ ] _conditions; SafeConditionMemoryHandle _conditionArrayHandle; #endregion Private Fields } } // 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
- FieldTemplateUserControl.cs
- CngKeyCreationParameters.cs
- mongolianshape.cs
- DynamicRendererThreadManager.cs
- FrameworkContentElement.cs
- PhysicalFontFamily.cs
- EntityClientCacheKey.cs
- TextOptionsInternal.cs
- ClientRoleProvider.cs
- RuntimeConfig.cs
- InkCollectionBehavior.cs
- DataSourceCache.cs
- BooleanToVisibilityConverter.cs
- SQLStringStorage.cs
- FixedNode.cs
- SiteMap.cs
- BamlResourceContent.cs
- StaticExtensionConverter.cs
- MessageQueueInstaller.cs
- JpegBitmapEncoder.cs
- WebEventTraceProvider.cs
- CmsInterop.cs
- PipelineModuleStepContainer.cs
- OraclePermission.cs
- ReceiveContent.cs
- UpdatableWrapper.cs
- XamlDesignerSerializationManager.cs
- ApplicationServiceManager.cs
- ApplicationInfo.cs
- ForeignKeyConstraint.cs
- CodePropertyReferenceExpression.cs
- ZipIOExtraField.cs
- TimeSpanParse.cs
- SqlStatistics.cs
- SettingsBase.cs
- ActivityDesignerAccessibleObject.cs
- ClientFormsIdentity.cs
- safex509handles.cs
- SystemIPv6InterfaceProperties.cs
- ResourceDescriptionAttribute.cs
- NullableDoubleAverageAggregationOperator.cs
- PrintDialog.cs
- PreservationFileReader.cs
- ContainerFilterService.cs
- EqualityComparer.cs
- ListViewSortEventArgs.cs
- WinEventHandler.cs
- TriggerBase.cs
- ViewgenContext.cs
- ShaderRenderModeValidation.cs
- OuterGlowBitmapEffect.cs
- ComEventsMethod.cs
- ScriptResourceAttribute.cs
- WebReferenceCollection.cs
- CharAnimationBase.cs
- RegexTree.cs
- ELinqQueryState.cs
- MethodSet.cs
- TimeSpanMinutesConverter.cs
- CodeTypeReferenceExpression.cs
- TypeElement.cs
- LinkTarget.cs
- XPathScanner.cs
- MultiPageTextView.cs
- ExclusiveCanonicalizationTransform.cs
- unsafenativemethodsother.cs
- DaylightTime.cs
- SimpleHandlerFactory.cs
- ScaleTransform3D.cs
- LinqDataSourceDeleteEventArgs.cs
- HttpClientCertificate.cs
- TreeViewHitTestInfo.cs
- GridViewRow.cs
- BasicBrowserDialog.cs
- EdmRelationshipRoleAttribute.cs
- WsrmTraceRecord.cs
- CollectionMarkupSerializer.cs
- TextFindEngine.cs
- FocusChangedEventArgs.cs
- UrlMappingsModule.cs
- PngBitmapEncoder.cs
- ServerValidateEventArgs.cs
- RequestCacheManager.cs
- CompositeControlDesigner.cs
- Logging.cs
- SqlCrossApplyToCrossJoin.cs
- SqlDataSourceStatusEventArgs.cs
- ChannelServices.cs
- AnnotationObservableCollection.cs
- PerformanceCounterLib.cs
- GlobalDataBindingHandler.cs
- ActivityAction.cs
- ScrollChrome.cs
- WebServiceClientProxyGenerator.cs
- UrlMappingsSection.cs
- SystemIPv4InterfaceProperties.cs
- CodeStatement.cs
- ThreadPoolTaskScheduler.cs
- SchemaImporterExtension.cs
- DataGridViewRowHeaderCell.cs