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
- DoubleUtil.cs
- ListViewItemEventArgs.cs
- ConfigurationProperty.cs
- ConnectorDragDropGlyph.cs
- MD5CryptoServiceProvider.cs
- DataGridLinkButton.cs
- WebScriptEndpoint.cs
- Clock.cs
- Rijndael.cs
- StackOverflowException.cs
- MemberPathMap.cs
- SqlClientMetaDataCollectionNames.cs
- ModelTreeManager.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- DataTableMappingCollection.cs
- AnonymousIdentificationModule.cs
- AtomMaterializerLog.cs
- VirtualPath.cs
- HtmlForm.cs
- DataRow.cs
- ButtonBaseAdapter.cs
- WebPartTransformerCollection.cs
- SqlDataSourceStatusEventArgs.cs
- LogSwitch.cs
- FontEmbeddingManager.cs
- BaseServiceProvider.cs
- SystemWebExtensionsSectionGroup.cs
- TableRowCollection.cs
- BitmapEffectInput.cs
- WebPartTransformerCollection.cs
- ListViewItemMouseHoverEvent.cs
- PeerObject.cs
- FloaterParaClient.cs
- RegexWriter.cs
- ScrollViewerAutomationPeer.cs
- StringReader.cs
- Site.cs
- datacache.cs
- ParserExtension.cs
- WebPartConnectionsDisconnectVerb.cs
- InstanceCreationEditor.cs
- CodeEntryPointMethod.cs
- SqlDataSourceQueryConverter.cs
- Attributes.cs
- RequestCacheManager.cs
- PlacementWorkspace.cs
- _LocalDataStore.cs
- StringFormat.cs
- ReservationCollection.cs
- RC2.cs
- ProtocolProfile.cs
- EffectiveValueEntry.cs
- SingleAnimationUsingKeyFrames.cs
- DockAndAnchorLayout.cs
- PropertyEmitterBase.cs
- FontUnit.cs
- BitmapScalingModeValidation.cs
- EmptyStringExpandableObjectConverter.cs
- Literal.cs
- SqlInternalConnectionTds.cs
- UnicastIPAddressInformationCollection.cs
- GeometryCombineModeValidation.cs
- IsolatedStorageException.cs
- SiteIdentityPermission.cs
- FastPropertyAccessor.cs
- SessionStateItemCollection.cs
- ProcessModule.cs
- CornerRadiusConverter.cs
- VerticalAlignConverter.cs
- PackageRelationshipSelector.cs
- ToolStripCollectionEditor.cs
- TriggerBase.cs
- HtmlGenericControl.cs
- UrlMappingsModule.cs
- GetLedgerRequest.cs
- SparseMemoryStream.cs
- TemplatePropertyEntry.cs
- VirtualDirectoryMapping.cs
- EnumerableRowCollectionExtensions.cs
- DiagnosticsConfiguration.cs
- UndoEngine.cs
- RowToFieldTransformer.cs
- DataComponentMethodGenerator.cs
- EventLogPermissionHolder.cs
- ParseChildrenAsPropertiesAttribute.cs
- FactoryMaker.cs
- IgnoreFileBuildProvider.cs
- UpdateCommand.cs
- PropertyConverter.cs
- SoapSchemaExporter.cs
- ProtectedConfigurationProviderCollection.cs
- InstanceDataCollectionCollection.cs
- EmptyWorkItem.cs
- URIFormatException.cs
- Accessible.cs
- ResourceCategoryAttribute.cs
- BamlBinaryReader.cs
- DataGridViewRowStateChangedEventArgs.cs
- TextTreePropertyUndoUnit.cs
- DrawToolTipEventArgs.cs