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
- StatusBarDrawItemEvent.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- MSAAWinEventWrap.cs
- SerialPort.cs
- QueryCacheKey.cs
- MessageDecoder.cs
- DataSourceCache.cs
- DescendantBaseQuery.cs
- HandleCollector.cs
- SettingsPropertyWrongTypeException.cs
- Funcletizer.cs
- PlatformCulture.cs
- RequestNavigateEventArgs.cs
- CustomValidator.cs
- RowToFieldTransformer.cs
- DefaultPropertyAttribute.cs
- RowVisual.cs
- StdRegProviderWrapper.cs
- SchemeSettingElementCollection.cs
- DoubleCollection.cs
- SettingsPropertyNotFoundException.cs
- PropertyDescriptor.cs
- ServerProtocol.cs
- LocalValueEnumerator.cs
- contentDescriptor.cs
- UiaCoreTypesApi.cs
- ConditionChanges.cs
- RenamedEventArgs.cs
- XmlTextEncoder.cs
- Pkcs7Signer.cs
- ApplyHostConfigurationBehavior.cs
- SHA1Managed.cs
- RedirectionProxy.cs
- XmlSchemaSimpleTypeRestriction.cs
- SpeechUI.cs
- RelationshipWrapper.cs
- LazyTextWriterCreator.cs
- BitmapCodecInfoInternal.cs
- CodeSnippetStatement.cs
- AsyncResult.cs
- ColorAnimation.cs
- WorkingDirectoryEditor.cs
- PathSegment.cs
- VersionedStream.cs
- MutexSecurity.cs
- ByteKeyFrameCollection.cs
- StateMachineWorkflowDesigner.cs
- RangeValueProviderWrapper.cs
- ChangeBlockUndoRecord.cs
- HtmlInputControl.cs
- XmlSchemaDatatype.cs
- DataGridColumnHeader.cs
- Label.cs
- SelectQueryOperator.cs
- DBConcurrencyException.cs
- PathBox.cs
- DataRow.cs
- SchemaImporterExtensionsSection.cs
- WebUtil.cs
- DrawingContextWalker.cs
- StrongBox.cs
- Parsers.cs
- UniqueConstraint.cs
- Evidence.cs
- NativeMethods.cs
- ScriptControlManager.cs
- EpmSyndicationContentSerializer.cs
- PersonalizationState.cs
- PersistenceTypeAttribute.cs
- ConfigurationSettings.cs
- ObjectStateFormatter.cs
- DropDownButton.cs
- TypeUsage.cs
- QueryOperatorEnumerator.cs
- XsltConvert.cs
- ByteStorage.cs
- JsonUriDataContract.cs
- Stroke2.cs
- ResponseBodyWriter.cs
- HtmlTextArea.cs
- VirtualPathProvider.cs
- Queue.cs
- TextContainerChangeEventArgs.cs
- HttpAsyncResult.cs
- ConfigurationManagerHelper.cs
- BreadCrumbTextConverter.cs
- DeflateStream.cs
- XmlSchemaSimpleTypeRestriction.cs
- DataGridViewLinkCell.cs
- Executor.cs
- DynamicUpdateCommand.cs
- SecurityKeyEntropyMode.cs
- Matrix3DValueSerializer.cs
- EventArgs.cs
- CompModSwitches.cs
- ELinqQueryState.cs
- CodeFieldReferenceExpression.cs
- baseaxisquery.cs
- CompilationSection.cs
- StylusPointProperties.cs