Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / UIAutomation / UIAutomationClient / System / Windows / Automation / OrCondition.cs / 1305600 / 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
- FullTextLine.cs
- NGCSerializer.cs
- HttpBrowserCapabilitiesWrapper.cs
- ToolStripMenuItemDesigner.cs
- OptimizerPatterns.cs
- FormViewDeletedEventArgs.cs
- loginstatus.cs
- Camera.cs
- TreeViewItemAutomationPeer.cs
- SqlConnectionString.cs
- TextEditor.cs
- ImageConverter.cs
- XmlIncludeAttribute.cs
- DayRenderEvent.cs
- Identifier.cs
- ConfigurationValue.cs
- ReadOnlyHierarchicalDataSource.cs
- InputScope.cs
- CellLabel.cs
- SqlInfoMessageEvent.cs
- ErrorFormatterPage.cs
- ErrorHandler.cs
- SQLBytesStorage.cs
- BitmapDecoder.cs
- SchemaSetCompiler.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- PropertyDescriptorGridEntry.cs
- LinqDataSourceEditData.cs
- Currency.cs
- OneOfScalarConst.cs
- SuppressMessageAttribute.cs
- GroupItem.cs
- OdbcException.cs
- GridViewRowPresenterBase.cs
- SqlCharStream.cs
- GridViewUpdateEventArgs.cs
- DeflateStream.cs
- AsymmetricAlgorithm.cs
- FileAuthorizationModule.cs
- PropertyPathWorker.cs
- RawStylusInputReport.cs
- SqlDataSourceCache.cs
- PostBackTrigger.cs
- ActivationWorker.cs
- WebPartCloseVerb.cs
- DetailsViewPageEventArgs.cs
- KeyInstance.cs
- InheritanceContextHelper.cs
- CryptoApi.cs
- AudioFileOut.cs
- AllMembershipCondition.cs
- TagNameToTypeMapper.cs
- DesignTimeTemplateParser.cs
- Perspective.cs
- WindowsFormsHelpers.cs
- CompensateDesigner.cs
- StrokeCollectionDefaultValueFactory.cs
- SettingsPropertyWrongTypeException.cs
- SizeAnimationBase.cs
- MediaPlayerState.cs
- BaseTemplateBuildProvider.cs
- EntityDataSourceChangedEventArgs.cs
- X509Utils.cs
- CollectionViewGroupRoot.cs
- TransactionBridgeSection.cs
- RefreshPropertiesAttribute.cs
- BufferModeSettings.cs
- TableColumn.cs
- XmlUtil.cs
- SymbolPair.cs
- BuildManager.cs
- unsafenativemethodsother.cs
- PrintingPermissionAttribute.cs
- ParameterSubsegment.cs
- TextAction.cs
- WebPartEditorOkVerb.cs
- MsmqAuthenticationMode.cs
- UIHelper.cs
- HwndPanningFeedback.cs
- ExpressionVisitor.cs
- MonitorWrapper.cs
- UrlMapping.cs
- KnownTypesProvider.cs
- HtmlToClrEventProxy.cs
- SqlProfileProvider.cs
- StrongTypingException.cs
- ErrorWebPart.cs
- XmlCodeExporter.cs
- DeviceContext2.cs
- BindingValueChangedEventArgs.cs
- Transform.cs
- SeekableReadStream.cs
- FakeModelPropertyImpl.cs
- DefaultTextStoreTextComposition.cs
- TableRow.cs
- X509Utils.cs
- QueryUtil.cs
- XmlDocument.cs
- MetadataStore.cs
- Command.cs