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
- SocketElement.cs
- PropertyItemInternal.cs
- Screen.cs
- StandardOleMarshalObject.cs
- ConstructorNeedsTagAttribute.cs
- HostedNamedPipeTransportManager.cs
- RepeatInfo.cs
- DataBoundControlActionList.cs
- WebDescriptionAttribute.cs
- X509ThumbprintKeyIdentifierClause.cs
- FloaterParaClient.cs
- WorkflowDesigner.cs
- BulletChrome.cs
- List.cs
- RouteValueExpressionBuilder.cs
- MenuItem.cs
- AnimationTimeline.cs
- NetworkCredential.cs
- WindowsUpDown.cs
- DesignerDataRelationship.cs
- RectangleConverter.cs
- XmlSchemaComplexContentRestriction.cs
- Int32RectValueSerializer.cs
- ToolStripOverflow.cs
- CustomAttribute.cs
- InputEventArgs.cs
- BufferModeSettings.cs
- OrCondition.cs
- ResourceCategoryAttribute.cs
- FileIOPermission.cs
- WebPartConnectionsCancelEventArgs.cs
- EventRoute.cs
- ConfigurationValue.cs
- DataObjectEventArgs.cs
- NumericUpDownAccelerationCollection.cs
- XamlToRtfParser.cs
- ConfigurationValidatorBase.cs
- ServicePoint.cs
- ContractTypeNameElement.cs
- DbUpdateCommandTree.cs
- VirtualPathUtility.cs
- Asn1IntegerConverter.cs
- ScrollEventArgs.cs
- PeerSecurityHelpers.cs
- LastQueryOperator.cs
- XmlSubtreeReader.cs
- ErrorFormatterPage.cs
- StaticContext.cs
- COM2FontConverter.cs
- QilXmlWriter.cs
- ObjectQuery_EntitySqlExtensions.cs
- Point.cs
- ArrayTypeMismatchException.cs
- GeneratedContractType.cs
- ContentValidator.cs
- QuadraticBezierSegment.cs
- EditorServiceContext.cs
- DialogResultConverter.cs
- HMACSHA512.cs
- SiteMapPath.cs
- Icon.cs
- ThreadPool.cs
- FontCacheUtil.cs
- TimeSpanValidator.cs
- NonSerializedAttribute.cs
- DateTimeParse.cs
- ETagAttribute.cs
- IisHelper.cs
- PrintPreviewControl.cs
- SchemaTableOptionalColumn.cs
- AuthenticationManager.cs
- CellParagraph.cs
- BamlLocalizationDictionary.cs
- ShellProvider.cs
- WCFBuildProvider.cs
- PropertyStore.cs
- ActionFrame.cs
- ControlValuePropertyAttribute.cs
- ListViewInsertEventArgs.cs
- MetaType.cs
- SqlDataAdapter.cs
- ImageUrlEditor.cs
- Debugger.cs
- PrintController.cs
- QilCloneVisitor.cs
- FormViewInsertedEventArgs.cs
- WebSysDescriptionAttribute.cs
- MultipartContentParser.cs
- ParameterModifier.cs
- DuplicateDetector.cs
- GAC.cs
- LoadWorkflowCommand.cs
- StatusBarItemAutomationPeer.cs
- SocketAddress.cs
- AttributedMetaModel.cs
- ActivationServices.cs
- EncoderBestFitFallback.cs
- HostVisual.cs
- InputProcessorProfilesLoader.cs
- CryptoStream.cs