Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / AccessibleTech / longhorn / Automation / Win32Providers / MS / Internal / AutomationProxies / WindowsProgressbar.cs / 1 / WindowsProgressbar.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: HWND-based ProgressBar Proxy
//
// History:
// [....]. Created
//
//---------------------------------------------------------------------------
using System;
using System.Collections;
using System.Text;
using System.ComponentModel;
using System.Windows.Automation;
using System.Windows.Automation.Provider;
using System.Windows;
using MS.Win32;
namespace MS.Internal.AutomationProxies
{
class WindowsProgressBar: ProxyHwnd, IRangeValueProvider
{
// -----------------------------------------------------
//
// Constructors
//
// -----------------------------------------------------
#region Constructors
WindowsProgressBar (IntPtr hwnd, ProxyFragment parent, int item)
: base( hwnd, parent, item )
{
_cControlType = ControlType.ProgressBar;
// support for events
_createOnEvent = new WinEventTracker.ProxyRaiseEvents (RaiseEvents);
}
#endregion
#region Proxy Create
// Static Create method called by UIAutomation to create this proxy.
// returns null if unsuccessful
internal static IRawElementProviderSimple Create(IntPtr hwnd, int idChild, int idObject)
{
return Create(hwnd, idChild);
}
private static IRawElementProviderSimple Create(IntPtr hwnd, int idChild)
{
// Something is wrong if idChild is not zero
if (idChild != 0)
{
System.Diagnostics.Debug.Assert (idChild == 0, "Invalid Child Id, idChild != 0");
throw new ArgumentOutOfRangeException("idChild", idChild, SR.Get(SRID.ShouldBeZero));
}
return new WindowsProgressBar(hwnd, null, 0);
}
// Static Create method called by the event tracker system
// WinEvents are raise because items exist. So it makes sense to create the item and
// check for details afterward.
internal static void RaiseEvents (IntPtr hwnd, int eventId, object idProp, int idObject, int idChild)
{
if (idObject != NativeMethods.OBJID_VSCROLL && idObject != NativeMethods.OBJID_HSCROLL)
{
WindowsProgressBar wtv = new WindowsProgressBar (hwnd, null, 0);
wtv.DispatchEvents (eventId, idProp, idObject, idChild);
}
}
#endregion
//------------------------------------------------------
//
// Patterns Implementation
//
//-----------------------------------------------------
#region ProxySimple Interface
// Returns a pattern interface if supported.
internal override object GetPatternProvider (AutomationPattern iid)
{
return (iid == RangeValuePattern.Pattern) ? this : null;
}
#endregion
#region RangeValue Pattern
void IRangeValueProvider.SetValue (double val)
{
//This proxy is readonly
throw new InvalidOperationException(SR.Get(SRID.ValueReadonly));
}
// Request to get the value that this UI element is representing in a native format
double IRangeValueProvider.Value
{
get
{
return (double)ValuePercent;
}
}
bool IRangeValueProvider.IsReadOnly
{
get
{
return true;
}
}
double IRangeValueProvider.Maximum
{
get
{
return (double) 100;
}
}
double IRangeValueProvider.Minimum
{
get
{
return (double) 0;
}
}
double IRangeValueProvider.SmallChange
{
get
{
return Double.NaN;
}
}
double IRangeValueProvider.LargeChange
{
get
{
return Double.NaN;
}
}
#endregion
//------------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
#region Value pattern helper
private int ValuePercent
{
get
{
int cur = Misc.ProxySendMessageInt(_hwnd, NativeMethods.PBM_GETPOS, IntPtr.Zero, IntPtr.Zero);
int min = Misc.ProxySendMessageInt(_hwnd, NativeMethods.PBM_GETRANGE, new IntPtr(1), IntPtr.Zero);
int max = Misc.ProxySendMessageInt(_hwnd, NativeMethods.PBM_GETRANGE, IntPtr.Zero, IntPtr.Zero);
int actualCur = cur - min;
int range = max - min;
return ((range != 0) ? (int)((100 * actualCur + range / 2) / range) : 0);
}
}
#endregion
#endregion
}
}
// 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
- DynamicRenderer.cs
- DataBindingExpressionBuilder.cs
- DefinitionBase.cs
- securitycriticaldata.cs
- PropertyEmitter.cs
- SessionStateSection.cs
- RuleInfoComparer.cs
- DataBoundControl.cs
- CounterSampleCalculator.cs
- ContentTextAutomationPeer.cs
- DiscoveryDocumentReference.cs
- Number.cs
- MaxMessageSizeStream.cs
- SpecialTypeDataContract.cs
- BindToObject.cs
- XmlArrayItemAttribute.cs
- ExpressionBuilder.cs
- JapaneseCalendar.cs
- ColumnHeader.cs
- ToolZone.cs
- DateTimeFormatInfoScanner.cs
- PageStatePersister.cs
- Cast.cs
- LinqDataSourceDisposeEventArgs.cs
- PerformanceCounter.cs
- Renderer.cs
- StorageConditionPropertyMapping.cs
- TextEditorContextMenu.cs
- CLSCompliantAttribute.cs
- CryptoSession.cs
- XPathSingletonIterator.cs
- AppSettingsReader.cs
- ProfilePropertySettingsCollection.cs
- ProfileManager.cs
- AutomationPropertyInfo.cs
- DateTimeConverter.cs
- HtmlElementEventArgs.cs
- IteratorDescriptor.cs
- ArraySortHelper.cs
- Timer.cs
- IPHostEntry.cs
- CodeArrayCreateExpression.cs
- PropertyInfoSet.cs
- StorageAssociationTypeMapping.cs
- HMACMD5.cs
- WsdlWriter.cs
- LicFileLicenseProvider.cs
- PropVariant.cs
- ContentPlaceHolder.cs
- MetabaseSettings.cs
- HttpListenerRequest.cs
- Debug.cs
- Clipboard.cs
- ImageButton.cs
- ProtocolReflector.cs
- Parser.cs
- TdsParserSafeHandles.cs
- ISessionStateStore.cs
- SmiConnection.cs
- WebPartsPersonalizationAuthorization.cs
- activationcontext.cs
- CodeConstructor.cs
- Int64.cs
- WindowsGraphics.cs
- WindowShowOrOpenTracker.cs
- RouteItem.cs
- AuthenticationSection.cs
- CqlParserHelpers.cs
- CallbackValidator.cs
- EncryptedData.cs
- diagnosticsswitches.cs
- FloaterParagraph.cs
- TextEditorContextMenu.cs
- ExportException.cs
- Compensation.cs
- ObjectDisposedException.cs
- DataGridViewHitTestInfo.cs
- SafeLibraryHandle.cs
- SchemaElement.cs
- DataGridItemEventArgs.cs
- ListViewGroupConverter.cs
- MarkerProperties.cs
- DoubleLink.cs
- SmiXetterAccessMap.cs
- JsonEnumDataContract.cs
- TemplateBamlRecordReader.cs
- HttpDebugHandler.cs
- KerberosTicketHashIdentifierClause.cs
- WebPartRestoreVerb.cs
- Stack.cs
- Pair.cs
- EventProvider.cs
- RegistryKey.cs
- CharConverter.cs
- ColumnMap.cs
- EndpointAddressMessageFilter.cs
- XMLSyntaxException.cs
- DesignerListAdapter.cs
- DefaultSection.cs
- AccessDataSourceView.cs