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
- Scene3D.cs
- _ConnectStream.cs
- CookieParameter.cs
- MasterPage.cs
- MenuStrip.cs
- StandardToolWindows.cs
- EventArgs.cs
- ComponentSerializationService.cs
- DrawingVisualDrawingContext.cs
- documentsequencetextview.cs
- SqlRewriteScalarSubqueries.cs
- ResolvedKeyFrameEntry.cs
- OpCellTreeNode.cs
- SmiRecordBuffer.cs
- StylusPointProperty.cs
- LabelDesigner.cs
- DynamicResourceExtensionConverter.cs
- ButtonBaseAutomationPeer.cs
- PartialToken.cs
- LocationSectionRecord.cs
- TextRenderer.cs
- DmlSqlGenerator.cs
- MouseDevice.cs
- WindowsSolidBrush.cs
- AtomServiceDocumentSerializer.cs
- InfoCardServiceInstallComponent.cs
- SqlUtil.cs
- GlyphingCache.cs
- PlainXmlWriter.cs
- HelpProvider.cs
- Thickness.cs
- NumberAction.cs
- PriorityRange.cs
- AutomationPatternInfo.cs
- XmlSchemaExporter.cs
- CodeNamespaceImportCollection.cs
- DefaultTypeArgumentAttribute.cs
- PersonalizationDictionary.cs
- ItemMap.cs
- Pkcs7Recipient.cs
- SizeConverter.cs
- PerfCounters.cs
- PageCatalogPartDesigner.cs
- WebPermission.cs
- ProfileProvider.cs
- TripleDES.cs
- OleDbError.cs
- MiniMapControl.xaml.cs
- XmlILAnnotation.cs
- ProcessProtocolHandler.cs
- FileDataSourceCache.cs
- NullableDoubleMinMaxAggregationOperator.cs
- PrivateFontCollection.cs
- DTCTransactionManager.cs
- OrderedDictionary.cs
- SecuritySessionServerSettings.cs
- StringStorage.cs
- AutomationPatternInfo.cs
- EmptyTextWriter.cs
- CodeSnippetTypeMember.cs
- ListManagerBindingsCollection.cs
- PrintingPermission.cs
- InvokeProviderWrapper.cs
- OuterGlowBitmapEffect.cs
- DetailsViewPageEventArgs.cs
- ObjectView.cs
- ExpandableObjectConverter.cs
- BaseTemplateParser.cs
- HostedHttpRequestAsyncResult.cs
- SqlUDTStorage.cs
- SHA384.cs
- WorkItem.cs
- SimpleApplicationHost.cs
- FrameworkTemplate.cs
- ResourceWriter.cs
- RtType.cs
- NegatedConstant.cs
- HttpsHostedTransportConfiguration.cs
- DocumentSequenceHighlightLayer.cs
- PathGradientBrush.cs
- PerfCounterSection.cs
- PreviousTrackingServiceAttribute.cs
- CryptoConfig.cs
- XmlSchemaAttribute.cs
- RtfControlWordInfo.cs
- __FastResourceComparer.cs
- WorkflowServiceInstance.cs
- DataViewManager.cs
- ServerIdentity.cs
- SessionStateSection.cs
- ObjectStateFormatter.cs
- RectangleHotSpot.cs
- RegisteredHiddenField.cs
- StrokeCollection2.cs
- PinnedBufferMemoryStream.cs
- TextTabProperties.cs
- Schema.cs
- ArraySet.cs
- DataGridViewColumnConverter.cs
- Menu.cs