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
- MembershipSection.cs
- HttpWebRequest.cs
- ChameleonKey.cs
- PasswordBox.cs
- StaticFileHandler.cs
- AxisAngleRotation3D.cs
- PermissionListSet.cs
- WebPartTracker.cs
- RenderDataDrawingContext.cs
- HelpEvent.cs
- AsymmetricAlgorithm.cs
- OrderedParallelQuery.cs
- ProofTokenCryptoHandle.cs
- SystemIPv6InterfaceProperties.cs
- UTF8Encoding.cs
- EditorPartCollection.cs
- TraceListener.cs
- DefaultWorkflowSchedulerService.cs
- BinaryNode.cs
- AsnEncodedData.cs
- XmlMapping.cs
- NavigationPropertySingletonExpression.cs
- PolyQuadraticBezierSegment.cs
- WebBrowser.cs
- InvokeBase.cs
- PageMediaSize.cs
- BindingGroup.cs
- FormatVersion.cs
- BufferedWebEventProvider.cs
- BitStream.cs
- TableRowCollection.cs
- StylusDownEventArgs.cs
- DuplexChannel.cs
- TableCellCollection.cs
- __Filters.cs
- MbpInfo.cs
- EntityType.cs
- XmlConverter.cs
- Attributes.cs
- DesignerTransactionCloseEvent.cs
- SafeWaitHandle.cs
- StylusShape.cs
- AdRotator.cs
- PreProcessInputEventArgs.cs
- CalendarAutomationPeer.cs
- StringValueSerializer.cs
- Point3DIndependentAnimationStorage.cs
- WCFModelStrings.Designer.cs
- CapabilitiesAssignment.cs
- Border.cs
- HtmlInputButton.cs
- CodeEntryPointMethod.cs
- FontDriver.cs
- AlignmentYValidation.cs
- ListBase.cs
- ComponentDispatcher.cs
- MailBnfHelper.cs
- SrgsRulesCollection.cs
- QilGenerator.cs
- CancellationToken.cs
- UpWmlMobileTextWriter.cs
- SettingsPropertyNotFoundException.cs
- ObjectViewQueryResultData.cs
- ToolStripButton.cs
- MappingItemCollection.cs
- VectorConverter.cs
- Metadata.cs
- HelpOperationInvoker.cs
- LookupNode.cs
- PropagatorResult.cs
- MenuEventArgs.cs
- StringTraceRecord.cs
- DbProviderFactoriesConfigurationHandler.cs
- EntityTypeBase.cs
- TextEvent.cs
- StatusStrip.cs
- DrawingGroupDrawingContext.cs
- DefaultEventAttribute.cs
- WebBrowserDesigner.cs
- FontCollection.cs
- MessageContractMemberAttribute.cs
- XmlUnspecifiedAttribute.cs
- GAC.cs
- XmlILModule.cs
- NameSpaceExtractor.cs
- LinkDescriptor.cs
- AspNetHostingPermission.cs
- WebConfigurationFileMap.cs
- ConcurrentStack.cs
- BitmapEffectvisualstate.cs
- ScrollItemPatternIdentifiers.cs
- CodeMethodInvokeExpression.cs
- GeneralTransformGroup.cs
- ParallelTimeline.cs
- Console.cs
- DynamicMetaObject.cs
- HTTPNotFoundHandler.cs
- COM2ColorConverter.cs
- XmlSchemaSet.cs
- TextTabProperties.cs