Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / UIAutomation / Win32Providers / MS / Internal / AutomationProxies / WindowsListViewGroupSubsetLink.cs / 1 / WindowsListViewGroupSubsetLink.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Win32 ListViewGroupSubsetLink proxy
//
//
//---------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Windows.Automation;
using System.Windows.Automation.Provider;
using System.Runtime.InteropServices;
using System.Windows;
using MS.Win32;
namespace MS.Internal.AutomationProxies
{
//-----------------------------------------------------
//
// ListViewGroupSubsetLink
//
//-----------------------------------------------------
// Proxy for List view Group Subset Link
class ListViewGroupSubsetLink: ProxySimple, IInvokeProvider
{
//------------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructor
internal ListViewGroupSubsetLink (IntPtr hwnd, ProxyFragment parent, int item, int groupId)
: base(hwnd, parent, item)
{
_cControlType = ControlType.Button;
_sAutomationId = "ListviewGroupSubsetLink" + groupId; // This string is a non-localizable string
_groupId = groupId;
_fIsKeyboardFocusable = true;
}
#endregion Constructor
//------------------------------------------------------
//
// Pattern Implementation
//
//------------------------------------------------------
#region ProxySimple Interface
// Returns a pattern interface if supported.
internal override object GetPatternProvider (AutomationPattern iid)
{
if (iid == InvokePattern.Pattern)
{
return this;
}
return null;
}
// Gets the bounding rectangle for this element
internal unsafe override Rect BoundingRectangle
{
get
{
NativeMethods.Win32Rect rect = new NativeMethods.Win32Rect();
rect.top = NativeMethods.LVGGR_SUBSETLINK;
XSendMessage.XSend(_hwnd, NativeMethods.LVM_GETGROUPRECT, new IntPtr(0), new IntPtr(&rect), Marshal.SizeOf(rect.GetType()));
Misc.MapWindowPoints(_hwnd, IntPtr.Zero, ref rect, 2);
return rect.ToRect(false);
}
}
// Is focus set to the specified item
protected override bool IsFocused ()
{
NativeMethods.LVGROUP_V6 groupInfo = new NativeMethods.LVGROUP_V6();
groupInfo.Init(Marshal.SizeOf(typeof(NativeMethods.LVGROUP_V6)));
groupInfo.iGroupID = _groupId;
groupInfo.mask = NativeMethods.LVGF_STATE;
groupInfo.stateMask = NativeMethods.LVGS_SUBSETLINKFOCUSED;
// Note: return code of GetGroupInfo() is not reliable.
XSendMessage.GetGroupInfo(_hwnd, ref groupInfo); // ignore return code.
return (groupInfo.state & NativeMethods.LVGS_SUBSETLINKFOCUSED) != 0;
}
//Gets the localized name
internal override string LocalizedName
{
get
{
NativeMethods.LVGROUP_V6 group = new NativeMethods.LVGROUP_V6();
group.Init(Marshal.SizeOf(typeof(NativeMethods.LVGROUP_V6)));
group.iGroupID = _groupId;
group.cchSubsetTitle= Misc.MaxLengthNameProperty;
return XSendMessage.GetItemText(_hwnd, group, NativeMethods.LVGF_SUBSET);
}
}
#endregion ProxySimple Interface
#region Invoke Pattern
void IInvokeProvider.Invoke ()
{
NativeMethods.Win32Point pt;
if (GetClickablePoint(out pt, false))
{
Misc.MouseClick(pt.x, pt.y);
}
}
#endregion Invoke Pattern
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
#region Private Fields
// The group id this link belongs to
private int _groupId;
#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: Win32 ListViewGroupSubsetLink proxy
//
//
//---------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Windows.Automation;
using System.Windows.Automation.Provider;
using System.Runtime.InteropServices;
using System.Windows;
using MS.Win32;
namespace MS.Internal.AutomationProxies
{
//-----------------------------------------------------
//
// ListViewGroupSubsetLink
//
//-----------------------------------------------------
// Proxy for List view Group Subset Link
class ListViewGroupSubsetLink: ProxySimple, IInvokeProvider
{
//------------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructor
internal ListViewGroupSubsetLink (IntPtr hwnd, ProxyFragment parent, int item, int groupId)
: base(hwnd, parent, item)
{
_cControlType = ControlType.Button;
_sAutomationId = "ListviewGroupSubsetLink" + groupId; // This string is a non-localizable string
_groupId = groupId;
_fIsKeyboardFocusable = true;
}
#endregion Constructor
//------------------------------------------------------
//
// Pattern Implementation
//
//------------------------------------------------------
#region ProxySimple Interface
// Returns a pattern interface if supported.
internal override object GetPatternProvider (AutomationPattern iid)
{
if (iid == InvokePattern.Pattern)
{
return this;
}
return null;
}
// Gets the bounding rectangle for this element
internal unsafe override Rect BoundingRectangle
{
get
{
NativeMethods.Win32Rect rect = new NativeMethods.Win32Rect();
rect.top = NativeMethods.LVGGR_SUBSETLINK;
XSendMessage.XSend(_hwnd, NativeMethods.LVM_GETGROUPRECT, new IntPtr(0), new IntPtr(&rect), Marshal.SizeOf(rect.GetType()));
Misc.MapWindowPoints(_hwnd, IntPtr.Zero, ref rect, 2);
return rect.ToRect(false);
}
}
// Is focus set to the specified item
protected override bool IsFocused ()
{
NativeMethods.LVGROUP_V6 groupInfo = new NativeMethods.LVGROUP_V6();
groupInfo.Init(Marshal.SizeOf(typeof(NativeMethods.LVGROUP_V6)));
groupInfo.iGroupID = _groupId;
groupInfo.mask = NativeMethods.LVGF_STATE;
groupInfo.stateMask = NativeMethods.LVGS_SUBSETLINKFOCUSED;
// Note: return code of GetGroupInfo() is not reliable.
XSendMessage.GetGroupInfo(_hwnd, ref groupInfo); // ignore return code.
return (groupInfo.state & NativeMethods.LVGS_SUBSETLINKFOCUSED) != 0;
}
//Gets the localized name
internal override string LocalizedName
{
get
{
NativeMethods.LVGROUP_V6 group = new NativeMethods.LVGROUP_V6();
group.Init(Marshal.SizeOf(typeof(NativeMethods.LVGROUP_V6)));
group.iGroupID = _groupId;
group.cchSubsetTitle= Misc.MaxLengthNameProperty;
return XSendMessage.GetItemText(_hwnd, group, NativeMethods.LVGF_SUBSET);
}
}
#endregion ProxySimple Interface
#region Invoke Pattern
void IInvokeProvider.Invoke ()
{
NativeMethods.Win32Point pt;
if (GetClickablePoint(out pt, false))
{
Misc.MouseClick(pt.x, pt.y);
}
}
#endregion Invoke Pattern
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
#region Private Fields
// The group id this link belongs to
private int _groupId;
#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
- XPathMessageFilterElementCollection.cs
- EnumerableValidator.cs
- XmlAnyAttributeAttribute.cs
- ChildChangedEventArgs.cs
- PasswordTextNavigator.cs
- DBNull.cs
- HMACSHA256.cs
- DiscoveryDocument.cs
- MenuItemBinding.cs
- SerializationFieldInfo.cs
- SharedPersonalizationStateInfo.cs
- SizeConverter.cs
- StdRegProviderWrapper.cs
- HeaderedItemsControl.cs
- SafeFileMappingHandle.cs
- LogPolicy.cs
- BooleanProjectedSlot.cs
- RotateTransform.cs
- AnimationClockResource.cs
- GridViewUpdatedEventArgs.cs
- RuleInfoComparer.cs
- DeflateStream.cs
- EntityDataSourceWrapper.cs
- WebPartUserCapability.cs
- BeginSelectCardRequest.cs
- EditingCoordinator.cs
- RootProfilePropertySettingsCollection.cs
- DrawingContextFlattener.cs
- SharedPerformanceCounter.cs
- HttpCapabilitiesSectionHandler.cs
- MobileTextWriter.cs
- NewItemsContextMenuStrip.cs
- XmlSiteMapProvider.cs
- HttpHandlerAction.cs
- AutomationPatternInfo.cs
- OciHandle.cs
- GiveFeedbackEvent.cs
- ScriptResourceHandler.cs
- FastPropertyAccessor.cs
- wgx_render.cs
- DrawingContext.cs
- XComponentModel.cs
- ProfileGroupSettingsCollection.cs
- SoapEnumAttribute.cs
- serverconfig.cs
- IntSecurity.cs
- AppDomainAttributes.cs
- OutputCacheSettings.cs
- ParserExtension.cs
- TraceHandlerErrorFormatter.cs
- SortedDictionary.cs
- AttributeSetAction.cs
- SessionEndingEventArgs.cs
- RangeValidator.cs
- Panel.cs
- SettingsBase.cs
- EntityParameter.cs
- ActiveDesignSurfaceEvent.cs
- Polygon.cs
- securitymgrsite.cs
- ProxyElement.cs
- CheckBoxField.cs
- TransformProviderWrapper.cs
- AspCompat.cs
- SmiEventSink_DeferedProcessing.cs
- FakeModelPropertyImpl.cs
- VisualTreeHelper.cs
- WorkflowServiceBuildProvider.cs
- NumberFormatInfo.cs
- IItemProperties.cs
- TextLineResult.cs
- ButtonPopupAdapter.cs
- SqlDataSourceConfigureSortForm.cs
- versioninfo.cs
- StrongNameMembershipCondition.cs
- SafeSystemMetrics.cs
- XmlSchemaCompilationSettings.cs
- CellConstantDomain.cs
- PagedDataSource.cs
- DrawingDrawingContext.cs
- XmlBinaryReader.cs
- ImageMapEventArgs.cs
- ErrorFormatterPage.cs
- ImportContext.cs
- PropertyTabChangedEvent.cs
- RequestContext.cs
- DrawingContextWalker.cs
- FlowLayoutPanelDesigner.cs
- ManageRequest.cs
- SmtpLoginAuthenticationModule.cs
- ECDiffieHellmanPublicKey.cs
- IndicFontClient.cs
- SourceSwitch.cs
- CompareInfo.cs
- OdbcDataAdapter.cs
- TrustManager.cs
- DocumentViewerConstants.cs
- Vector3dCollection.cs
- GeneralTransform3D.cs
- ConfigurationElementCollection.cs