Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / UIAutomation / UIAutomationClient / System / Windows / Automation / AndCondition.cs / 1 / 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
- AddDataControlFieldDialog.cs
- OneOf.cs
- Timer.cs
- SessionEndingEventArgs.cs
- InputMethodStateTypeInfo.cs
- MetadataUtilsSmi.cs
- ListControl.cs
- AssemblyFilter.cs
- FrameworkContentElementAutomationPeer.cs
- FunctionParameter.cs
- PropertyHelper.cs
- ToolStripItemImageRenderEventArgs.cs
- CellTreeNodeVisitors.cs
- AsyncOperationManager.cs
- MarkupObject.cs
- ContentTextAutomationPeer.cs
- ColorConvertedBitmap.cs
- PagesSection.cs
- RootProfilePropertySettingsCollection.cs
- BulletedList.cs
- EntityParameterCollection.cs
- Array.cs
- RelatedImageListAttribute.cs
- TypeDescriptionProvider.cs
- AuditLog.cs
- SetState.cs
- UDPClient.cs
- SQLRoleProvider.cs
- CultureInfo.cs
- CultureMapper.cs
- XmlSchemaSimpleContentRestriction.cs
- XpsFilter.cs
- DispatcherOperation.cs
- KnownColorTable.cs
- ImpersonationContext.cs
- Ray3DHitTestResult.cs
- AddInController.cs
- MultiView.cs
- ToolStripDropDown.cs
- TransactionManagerProxy.cs
- CookieHandler.cs
- LambdaCompiler.Logical.cs
- TrackingExtract.cs
- ScriptDescriptor.cs
- ToolStripScrollButton.cs
- IPEndPoint.cs
- CryptoStream.cs
- AssemblyResourceLoader.cs
- SettingsProviderCollection.cs
- KeyNotFoundException.cs
- TranslateTransform3D.cs
- OletxEnlistment.cs
- PageOrientation.cs
- SubclassTypeValidatorAttribute.cs
- TimeSpanOrInfiniteConverter.cs
- DefaultValueConverter.cs
- HttpModuleActionCollection.cs
- StreamGeometryContext.cs
- StrongNameMembershipCondition.cs
- HttpPostLocalhostServerProtocol.cs
- MimeTypePropertyAttribute.cs
- IteratorDescriptor.cs
- SqlReorderer.cs
- LinearGradientBrush.cs
- MaskedTextBoxDesigner.cs
- EditorPartCollection.cs
- LambdaCompiler.Lambda.cs
- Stack.cs
- RtfControlWordInfo.cs
- DataGridViewCellStyle.cs
- RequestCache.cs
- FieldTemplateUserControl.cs
- XamlRtfConverter.cs
- CodeDomComponentSerializationService.cs
- QueryCursorEventArgs.cs
- IntSecurity.cs
- ReferentialConstraint.cs
- Speller.cs
- GridViewRowEventArgs.cs
- RandomDelayQueuedSendsAsyncResult.cs
- PlacementWorkspace.cs
- ApplicationFileCodeDomTreeGenerator.cs
- RepeaterItem.cs
- BevelBitmapEffect.cs
- RectKeyFrameCollection.cs
- XsltLibrary.cs
- ProcessModelSection.cs
- GridViewRowPresenterBase.cs
- StyleModeStack.cs
- EmptyEnumerable.cs
- CryptoHelper.cs
- TdsParser.cs
- PartBasedPackageProperties.cs
- ActionNotSupportedException.cs
- WebPartMenuStyle.cs
- QueryInterceptorAttribute.cs
- GridViewRow.cs
- ExtenderControl.cs
- RegexCompilationInfo.cs
- Char.cs