Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / UIAutomation / UIAutomationClient / System / Windows / Automation / AndCondition.cs / 1305600 / AndCondition.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 AndCondition : Condition
#else
public class AndCondition : Condition
#endif
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// Constructor to create a condition that is true if all of the sub-conditions are true
///
/// One or more sub-condition
public AndCondition( 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.And, _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 AndCondition : Condition
#else
public class AndCondition : Condition
#endif
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// Constructor to create a condition that is true if all of the sub-conditions are true
///
/// One or more sub-condition
public AndCondition( 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.And, _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
- PassportAuthenticationModule.cs
- SqlRowUpdatedEvent.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- PersistencePipeline.cs
- Triangle.cs
- mda.cs
- WebContext.cs
- IPHostEntry.cs
- DateTimeOffsetStorage.cs
- GridViewColumnCollection.cs
- CacheDependency.cs
- FtpRequestCacheValidator.cs
- RotationValidation.cs
- ReadOnlyDictionary.cs
- SqlConnectionHelper.cs
- IERequestCache.cs
- mediaclock.cs
- BitmapInitialize.cs
- FloatUtil.cs
- SchemaEntity.cs
- EventData.cs
- XmlObjectSerializerReadContextComplexJson.cs
- XmlStreamStore.cs
- WebMethodAttribute.cs
- UIHelper.cs
- HatchBrush.cs
- Misc.cs
- ProfileParameter.cs
- GridView.cs
- HttpPostedFileBase.cs
- HwndMouseInputProvider.cs
- StaticResourceExtension.cs
- ListViewItemEventArgs.cs
- MachineKeySection.cs
- DBSchemaRow.cs
- TraceContextRecord.cs
- OutputCacheSettings.cs
- MinimizableAttributeTypeConverter.cs
- DoubleLinkList.cs
- EnvelopedPkcs7.cs
- FacetEnabledSchemaElement.cs
- TextHidden.cs
- ChtmlFormAdapter.cs
- InputScope.cs
- CLSCompliantAttribute.cs
- UICuesEvent.cs
- Debug.cs
- ActivityPreviewDesigner.cs
- SQLUtility.cs
- MailWebEventProvider.cs
- WebUtil.cs
- IPGlobalProperties.cs
- FrameworkObject.cs
- HostAdapter.cs
- TrustLevelCollection.cs
- SystemDiagnosticsSection.cs
- DataMemberAttribute.cs
- LinqTreeNodeEvaluator.cs
- PerformanceCounterPermission.cs
- MappingException.cs
- ExceptionHandler.cs
- EntityReference.cs
- TraceUtility.cs
- AsymmetricAlgorithm.cs
- ContextDataSourceView.cs
- NativeMethods.cs
- BigInt.cs
- ReflectionTypeLoadException.cs
- XmlEventCache.cs
- CodeVariableReferenceExpression.cs
- CompiledAction.cs
- GatewayDefinition.cs
- DSACryptoServiceProvider.cs
- XmlProcessingInstruction.cs
- ConsoleKeyInfo.cs
- RenderDataDrawingContext.cs
- SuppressMessageAttribute.cs
- DrawingAttributeSerializer.cs
- TaskSchedulerException.cs
- ToolBarButton.cs
- WebPartEventArgs.cs
- SocketElement.cs
- Matrix3DConverter.cs
- PlatformNotSupportedException.cs
- SecurityKeyIdentifier.cs
- HMACSHA512.cs
- ForEachAction.cs
- PresentationTraceSources.cs
- _SSPIWrapper.cs
- PropVariant.cs
- InstanceDescriptor.cs
- ApplicationSecurityManager.cs
- _ProxyRegBlob.cs
- TrackingMemoryStream.cs
- HttpTransportElement.cs
- ActivityDesignerResources.cs
- XPathException.cs
- MultiByteCodec.cs
- OpCodes.cs
- DataGridViewDataConnection.cs