Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- sqlnorm.cs
- SymmetricKeyWrap.cs
- FlowDocumentReaderAutomationPeer.cs
- Debug.cs
- TextDecoration.cs
- XmlDataSourceView.cs
- RequestCacheValidator.cs
- ConsumerConnectionPoint.cs
- TranslateTransform.cs
- RolePrincipal.cs
- SchemaCollectionCompiler.cs
- SQLBinary.cs
- ImageEditor.cs
- TableColumn.cs
- OracleCommandBuilder.cs
- BehaviorEditorPart.cs
- PreProcessor.cs
- DataControlFieldHeaderCell.cs
- ProfilePropertySettingsCollection.cs
- SineEase.cs
- Comparer.cs
- TraceContextRecord.cs
- BamlTreeUpdater.cs
- ColorConvertedBitmap.cs
- SystemInfo.cs
- ReliableMessagingHelpers.cs
- ProtocolElementCollection.cs
- TokenizerHelper.cs
- BufferedStream.cs
- EntityRecordInfo.cs
- EllipticalNodeOperations.cs
- WindowsPen.cs
- ConfigXmlAttribute.cs
- ResizeBehavior.cs
- DataObjectAttribute.cs
- CharEnumerator.cs
- ActivityDesignerResources.cs
- GridViewColumnHeaderAutomationPeer.cs
- TextServicesContext.cs
- TextAdaptor.cs
- StringValidator.cs
- SeparatorAutomationPeer.cs
- SmuggledIUnknown.cs
- ToolboxService.cs
- sitestring.cs
- FormsAuthenticationUserCollection.cs
- ExpressionEditor.cs
- MasterPageBuildProvider.cs
- PlanCompiler.cs
- CreateUserWizard.cs
- input.cs
- ControlPropertyNameConverter.cs
- Quaternion.cs
- ChameleonKey.cs
- ViewManager.cs
- RegexInterpreter.cs
- RightsManagementEncryptedStream.cs
- ForwardPositionQuery.cs
- TraceEventCache.cs
- PropertyEmitterBase.cs
- TemplateColumn.cs
- TextDecorationCollectionConverter.cs
- HashAlgorithm.cs
- TypeDescriptor.cs
- RequestCacheManager.cs
- HtmlInputHidden.cs
- HttpSysSettings.cs
- Point3D.cs
- ISFClipboardData.cs
- PopOutPanel.cs
- IBuiltInEvidence.cs
- SqlBulkCopyColumnMappingCollection.cs
- WebPartConnection.cs
- TimeoutValidationAttribute.cs
- EdmSchemaAttribute.cs
- FocusTracker.cs
- ReadOnlyAttribute.cs
- CodeTypeReferenceCollection.cs
- ObjectListDataBindEventArgs.cs
- TreeViewAutomationPeer.cs
- TextBox.cs
- ToolBarTray.cs
- IisTraceListener.cs
- DataGridClipboardCellContent.cs
- EditCommandColumn.cs
- WriteFileContext.cs
- HtmlGenericControl.cs
- SocketCache.cs
- BoolExpr.cs
- Connector.cs
- CacheHelper.cs
- CellPartitioner.cs
- MimeBasePart.cs
- MonikerProxyAttribute.cs
- EncoderExceptionFallback.cs
- DispatcherObject.cs
- DataGridItemCollection.cs
- DataServiceContext.cs
- DTCTransactionManager.cs
- Rotation3D.cs