Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / UIAutomation / Win32Providers / MS / Internal / AutomationProxies / WindowsListViewGroupSubsetLink.cs / 1305600 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AttributeEmitter.cs
- SQLDecimalStorage.cs
- _ServiceNameStore.cs
- InfiniteTimeSpanConverter.cs
- LassoHelper.cs
- CollectionViewGroupRoot.cs
- AdornerLayer.cs
- UidManager.cs
- X509CertificateClaimSet.cs
- AssemblyCache.cs
- AlternateViewCollection.cs
- ToolBar.cs
- COAUTHINFO.cs
- UpdatableGenericsFeature.cs
- GenericTransactionFlowAttribute.cs
- Application.cs
- ActiveXHelper.cs
- CodeChecksumPragma.cs
- TypeSource.cs
- StickyNoteContentControl.cs
- FilterableAttribute.cs
- TextDpi.cs
- GeneralTransformCollection.cs
- ThrowOnMultipleAssignment.cs
- DataGridViewBand.cs
- ConfigurationLocationCollection.cs
- FixedElement.cs
- GenericRootAutomationPeer.cs
- PagedDataSource.cs
- ProfileService.cs
- UserNameServiceElement.cs
- GridLengthConverter.cs
- oledbmetadatacollectionnames.cs
- SpeechEvent.cs
- SQLCharsStorage.cs
- mansign.cs
- MouseOverProperty.cs
- ObjectParameterCollection.cs
- BevelBitmapEffect.cs
- TreeNodeConverter.cs
- SafeTimerHandle.cs
- ObsoleteAttribute.cs
- IndexerNameAttribute.cs
- DependencyObjectPropertyDescriptor.cs
- WSTrustDec2005.cs
- Drawing.cs
- TdsParser.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- ListViewGroup.cs
- ListViewHitTestInfo.cs
- CodeGenHelper.cs
- TextLine.cs
- XPathConvert.cs
- EdmComplexTypeAttribute.cs
- SearchForVirtualItemEventArgs.cs
- PocoPropertyAccessorStrategy.cs
- GcHandle.cs
- RangeContentEnumerator.cs
- CodeTypeMemberCollection.cs
- RadioButton.cs
- SortQuery.cs
- NewArray.cs
- CorePropertiesFilter.cs
- UserControlParser.cs
- ConfigurationManager.cs
- FtpRequestCacheValidator.cs
- NotifyParentPropertyAttribute.cs
- CodeCatchClause.cs
- CdpEqualityComparer.cs
- WebPartConnectionsCancelVerb.cs
- FrameworkElementAutomationPeer.cs
- ListenerAdapter.cs
- _RequestCacheProtocol.cs
- AsnEncodedData.cs
- DataGrid.cs
- DesignerLoader.cs
- Panel.cs
- PeerConnector.cs
- ConnectionDemuxer.cs
- CompressStream.cs
- WebServiceAttribute.cs
- SoapWriter.cs
- ViewManager.cs
- TemplateBindingExpression.cs
- XmlDeclaration.cs
- DocumentPageTextView.cs
- SID.cs
- SiteMapNode.cs
- EventMappingSettingsCollection.cs
- TextBoxRenderer.cs
- MetadataItemEmitter.cs
- EntityCommandDefinition.cs
- DeviceSpecificChoiceCollection.cs
- FontNamesConverter.cs
- DetailsViewPagerRow.cs
- Enum.cs
- WSDualHttpBindingCollectionElement.cs
- SoapEnumAttribute.cs
- HttpCapabilitiesEvaluator.cs
- ParameterBuilder.cs