Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / UIAutomation / UIAutomationClient / System / Windows / Automation / OrCondition.cs / 1 / OrCondition.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 OrCondition : Condition
#else
public class OrCondition : Condition
#endif
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// Constructor to create a condition that is true if any of the sub-conditions are true
///
/// One or more sub-condition
public OrCondition( 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.Or, _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 OrCondition : Condition
#else
public class OrCondition : Condition
#endif
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// Constructor to create a condition that is true if any of the sub-conditions are true
///
/// One or more sub-condition
public OrCondition( 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.Or, _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
- DBCSCodePageEncoding.cs
- ColorKeyFrameCollection.cs
- XmlSignificantWhitespace.cs
- SqlParameterCollection.cs
- Stackframe.cs
- ListSortDescriptionCollection.cs
- OrderedDictionary.cs
- IgnoreFileBuildProvider.cs
- TextEditorTables.cs
- BorderSidesEditor.cs
- HtmlTernaryTree.cs
- WindowsAuthenticationModule.cs
- BinaryUtilClasses.cs
- SoapReflector.cs
- CodeVariableReferenceExpression.cs
- OdbcConnectionString.cs
- CSharpCodeProvider.cs
- NativeCppClassAttribute.cs
- SqlDataSource.cs
- EventProviderClassic.cs
- DateTimeOffsetStorage.cs
- recordstatescratchpad.cs
- MailMessageEventArgs.cs
- DataGridItemEventArgs.cs
- RenderDataDrawingContext.cs
- StaticSiteMapProvider.cs
- AutomationPatternInfo.cs
- HelpKeywordAttribute.cs
- SchemaTableColumn.cs
- CapabilitiesState.cs
- SmiMetaDataProperty.cs
- ProcessHostMapPath.cs
- OleDbReferenceCollection.cs
- PrimaryKeyTypeConverter.cs
- HistoryEventArgs.cs
- KeyboardInputProviderAcquireFocusEventArgs.cs
- EntityDataSourceReferenceGroup.cs
- EntityType.cs
- FeatureManager.cs
- ErrorWrapper.cs
- TokenBasedSet.cs
- XamlDesignerSerializationManager.cs
- SmtpFailedRecipientsException.cs
- SiteMembershipCondition.cs
- OletxResourceManager.cs
- DoubleConverter.cs
- ScriptReference.cs
- EditorAttribute.cs
- ProfileParameter.cs
- PropertyMap.cs
- WindowsListViewItemCheckBox.cs
- mediaclock.cs
- HeaderElement.cs
- TreeNodeMouseHoverEvent.cs
- KeyConverter.cs
- ExcCanonicalXml.cs
- StringPropertyBuilder.cs
- DataGridViewTextBoxEditingControl.cs
- EasingQuaternionKeyFrame.cs
- InsufficientExecutionStackException.cs
- CompilerTypeWithParams.cs
- XmlKeywords.cs
- TrustVersion.cs
- HttpHandlerActionCollection.cs
- Condition.cs
- PageAsyncTask.cs
- XmlEnumAttribute.cs
- EntityDataSourceMemberPath.cs
- TableAdapterManagerGenerator.cs
- WindowsGraphicsWrapper.cs
- XmlAttributeCache.cs
- ListViewCancelEventArgs.cs
- PenContexts.cs
- ImageIndexConverter.cs
- DataSourceHelper.cs
- SymmetricSecurityProtocolFactory.cs
- Profiler.cs
- UpdateExpressionVisitor.cs
- ArcSegment.cs
- DesignerRegion.cs
- Simplifier.cs
- CodeExporter.cs
- SectionXmlInfo.cs
- ExpandCollapseProviderWrapper.cs
- CheckBoxStandardAdapter.cs
- Control.cs
- ListItemParagraph.cs
- BitmapEffectvisualstate.cs
- StatusBar.cs
- CheckBoxList.cs
- SqlProvider.cs
- XmlSchemaDatatype.cs
- LinkButton.cs
- CursorConverter.cs
- UndoManager.cs
- TreeNodeMouseHoverEvent.cs
- RangeValueProviderWrapper.cs
- XmlWrappingReader.cs
- TextDecorationLocationValidation.cs
- ToolStripOverflow.cs