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
- TableLayoutColumnStyleCollection.cs
- NamedPermissionSet.cs
- DataContractAttribute.cs
- XomlCompilerParameters.cs
- StrokeNode.cs
- StaticFileHandler.cs
- SudsParser.cs
- WebHttpSecurity.cs
- WsiProfilesElementCollection.cs
- MobileControlBuilder.cs
- LexicalChunk.cs
- DTCTransactionManager.cs
- PipelineModuleStepContainer.cs
- LifetimeServices.cs
- WindowsContainer.cs
- PagePropertiesChangingEventArgs.cs
- BasePropertyDescriptor.cs
- DispatcherObject.cs
- DecimalSumAggregationOperator.cs
- ThicknessKeyFrameCollection.cs
- GenerateScriptTypeAttribute.cs
- URLIdentityPermission.cs
- Identifier.cs
- BooleanProjectedSlot.cs
- DetailsViewCommandEventArgs.cs
- DispatcherTimer.cs
- TraceSection.cs
- CustomExpression.cs
- WebRequest.cs
- SystemResourceKey.cs
- TextElementEditingBehaviorAttribute.cs
- ConsumerConnectionPoint.cs
- XMLDiffLoader.cs
- SymbolEqualComparer.cs
- CacheAxisQuery.cs
- UriExt.cs
- wgx_exports.cs
- ItemChangedEventArgs.cs
- EndPoint.cs
- Odbc32.cs
- GeometryHitTestResult.cs
- MsmqIntegrationProcessProtocolHandler.cs
- BroadcastEventHelper.cs
- RepeaterItem.cs
- InvalidFilterCriteriaException.cs
- FrameworkElementAutomationPeer.cs
- UserInitiatedNavigationPermission.cs
- SizeAnimationBase.cs
- CallbackHandler.cs
- PageWrapper.cs
- DeferredElementTreeState.cs
- ErrorInfoXmlDocument.cs
- CloseCryptoHandleRequest.cs
- RegisteredScript.cs
- DomainConstraint.cs
- AnonymousIdentificationModule.cs
- LinqDataSourceDisposeEventArgs.cs
- DockProviderWrapper.cs
- ColumnReorderedEventArgs.cs
- EnlistmentTraceIdentifier.cs
- Console.cs
- WindowsGraphicsCacheManager.cs
- SqlCharStream.cs
- DockPanel.cs
- UnmanagedHandle.cs
- StorageBasedPackageProperties.cs
- ProtocolsInstallComponent.cs
- MenuItem.cs
- PathFigure.cs
- Ops.cs
- CodeTypeParameterCollection.cs
- X509ChainElement.cs
- XmlSchemaAttribute.cs
- Thumb.cs
- MasterPageCodeDomTreeGenerator.cs
- TaiwanCalendar.cs
- DSASignatureDeformatter.cs
- GradientSpreadMethodValidation.cs
- EDesignUtil.cs
- DesignerSerializerAttribute.cs
- XmlDownloadManager.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- Style.cs
- EllipseGeometry.cs
- UdpDiscoveryMessageFilter.cs
- ReliabilityContractAttribute.cs
- SimpleHandlerFactory.cs
- ReaderWriterLock.cs
- HitTestParameters.cs
- CompilerParameters.cs
- TypeConverter.cs
- InternalCache.cs
- Slider.cs
- PassportPrincipal.cs
- DateTimeConstantAttribute.cs
- COM2FontConverter.cs
- OleDbDataReader.cs
- propertytag.cs
- MetadataItemCollectionFactory.cs
- TransformProviderWrapper.cs