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
- XmlExpressionDumper.cs
- UndirectedGraph.cs
- WCFServiceClientProxyGenerator.cs
- XsdCachingReader.cs
- CompositeActivityCodeGenerator.cs
- CellTreeNode.cs
- NavigatorInput.cs
- DbMetaDataColumnNames.cs
- SrgsToken.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- Collection.cs
- DataGridViewCellStyleChangedEventArgs.cs
- ServiceContractDetailViewControl.cs
- AnonymousIdentificationSection.cs
- FormClosingEvent.cs
- UserNamePasswordValidator.cs
- SqlDataSourceEnumerator.cs
- TextContainerHelper.cs
- SmiMetaDataProperty.cs
- Point3DAnimationBase.cs
- DragDrop.cs
- BookmarkScopeHandle.cs
- QilCloneVisitor.cs
- SingleAnimationUsingKeyFrames.cs
- XmlSchemaComplexType.cs
- CellTreeSimplifier.cs
- AbstractDataSvcMapFileLoader.cs
- DrawListViewColumnHeaderEventArgs.cs
- CollectionContainer.cs
- ColorPalette.cs
- EventTrigger.cs
- EntityDataSourceEntitySetNameItem.cs
- DescendantOverDescendantQuery.cs
- BuiltInPermissionSets.cs
- ConditionalAttribute.cs
- SortDescription.cs
- SiteMapProvider.cs
- SkipStoryboardToFill.cs
- TCPListener.cs
- EntityAdapter.cs
- TextEditorLists.cs
- UndoManager.cs
- Deflater.cs
- ColumnResizeUndoUnit.cs
- HttpMethodAttribute.cs
- PasswordRecovery.cs
- FullTextState.cs
- BitmapEffectDrawingContent.cs
- ProfileServiceManager.cs
- CustomWebEventKey.cs
- SourceLocation.cs
- VisualStyleElement.cs
- CharUnicodeInfo.cs
- DataGridAutoFormat.cs
- Propagator.cs
- AttributeEmitter.cs
- Polygon.cs
- SafeRegistryKey.cs
- RowUpdatingEventArgs.cs
- DataColumnChangeEvent.cs
- FileSystemEventArgs.cs
- DataGridViewImageCell.cs
- TreeViewTemplateSelector.cs
- EntityContainer.cs
- ListBase.cs
- DataGridViewSortCompareEventArgs.cs
- TemplatedMailWebEventProvider.cs
- FtpWebRequest.cs
- Environment.cs
- PerfProviderCollection.cs
- DesignerResources.cs
- ExpressionBindingCollection.cs
- GridViewColumn.cs
- SpeechUI.cs
- ColorIndependentAnimationStorage.cs
- DiagnosticTraceSource.cs
- oledbmetadatacolumnnames.cs
- ProbeMatchesCD1.cs
- KeyTime.cs
- codemethodreferenceexpression.cs
- Ref.cs
- UseAttributeSetsAction.cs
- ConstructorNeedsTagAttribute.cs
- FileLoadException.cs
- ScopedKnownTypes.cs
- ScriptResourceInfo.cs
- PenLineCapValidation.cs
- XamlTypeMapperSchemaContext.cs
- WindowsAuthenticationModule.cs
- TabRenderer.cs
- Inflater.cs
- ColorMap.cs
- SettingsBase.cs
- SiteMapNodeItemEventArgs.cs
- TargetConverter.cs
- DBConnectionString.cs
- BufferedWebEventProvider.cs
- HttpModuleCollection.cs
- XmlIlGenerator.cs
- XPathCompileException.cs