Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / UIAutomation / Win32Providers / MS / Internal / AutomationProxies / WindowsFormsLinkLabel.cs / 1305600 / WindowsFormsLinkLabel.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Windows LinkLabel Proxy
//
// History:
// 07/01/2003 : a-jeanp Created
//---------------------------------------------------------------------------
// PRESHARP: In order to avoid generating warnings about unkown message numbers and unknown pragmas.
#pragma warning disable 1634, 1691
using System;
using System.Collections;
using System.ComponentModel;
using System.Runtime.InteropServices;
using System.Windows.Automation;
using System.Windows.Automation.Provider;
using Accessibility;
using System.Windows;
using System.Windows.Input;
using MS.Win32;
namespace MS.Internal.AutomationProxies
{
// FormsLink proxy
class FormsLink : ProxyHwnd, IInvokeProvider
{
// -----------------------------------------------------
//
// Construction/destruction
//
// -----------------------------------------------------
#region Constructors
internal FormsLink (IntPtr hwnd, ProxyFragment parent, int item)
: base( hwnd, parent, item)
{
// Set the strings to return properly the properties.
_cControlType = ControlType.Hyperlink;
// support for events
_createOnEvent = new WinEventTracker.ProxyRaiseEvents(RaiseEvents);
}
#endregion Constructors
#region Proxy Create
// Static Create method called by UIAutomation to create this proxy.
internal 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 FormsLink(hwnd, null, idChild);
}
// Static Create method called by the event tracker system
internal static void RaiseEvents(IntPtr hwnd, int eventId, object idProp, int idObject, int idChild)
{
if (idObject != NativeMethods.OBJID_VSCROLL && idObject != NativeMethods.OBJID_HSCROLL)
{
ProxySimple wtv = new FormsLink(hwnd, null, idChild);
wtv.DispatchEvents(eventId, idProp, idObject, idChild);
}
}
#endregion Proxy Create
// ------------------------------------------------------
//
// Patterns Implementation
//
// -----------------------------------------------------
#region ProxyHwnd Interface
// Builds a list of Win32 WinEvents to process a UIAutomation Event.
// Param name="idEvent", UIAuotmation event
// Param name="cEvent"out, number of winevent set in the array
// Returns an array of Events to Set. The number of valid entries in this array pass back in cEvent
protected override WinEventTracker.EvtIdProperty[] EventToWinEvent(AutomationEvent idEvent, out int cEvent)
{
if (idEvent == InvokePattern.InvokedEvent)
{
cEvent = 1;
return new WinEventTracker.EvtIdProperty[1] { new WinEventTracker.EvtIdProperty(NativeMethods.EventSystemCaptureEnd, idEvent) };
}
return base.EventToWinEvent(idEvent, out cEvent);
}
#endregion ProxyHwnd Interface
#region ProxySimple Interface
// Returns a pattern interface if supported.
internal override object GetPatternProvider(AutomationPattern iid)
{
return iid == InvokePattern.Pattern ? this : null;
}
// Sets the focus to this item.
internal override bool SetFocus()
{
Misc.SetFocus(_hwnd);
return true;
}
#endregion ProxySimple Interface
#region Invoke Pattern
// Same as clicking on an hyperlink
void IInvokeProvider.Invoke()
{
// Check that button can be clicked.
//
// This state could change anytime.
//
// Make sure that the control is enabled
if (!SafeNativeMethods.IsWindowEnabled(_hwnd))
{
throw new ElementNotEnabledException();
}
if (!SafeNativeMethods.IsWindowVisible(_hwnd))
{
throw new InvalidOperationException(SR.Get(SRID.OperationCannotBePerformed));
}
Misc.SetFocus(_hwnd);
NativeMethods.Win32Point pt = new NativeMethods.Win32Point();
if (GetClickablePoint(out pt, false))
{
Misc.MouseClick(pt.x, pt.y);
}
}
#endregion Invoke Pattern
}
}
// 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
- LongValidator.cs
- WinEventWrap.cs
- SecurityTokenInclusionMode.cs
- XmlSerializerAssemblyAttribute.cs
- QilInvokeLateBound.cs
- EventLogPermissionEntry.cs
- SelectorAutomationPeer.cs
- OutOfProcStateClientManager.cs
- ListViewDeletedEventArgs.cs
- XPathNodeInfoAtom.cs
- VisualTransition.cs
- ToolStripItemTextRenderEventArgs.cs
- SmtpFailedRecipientsException.cs
- RequestStatusBarUpdateEventArgs.cs
- BinHexEncoding.cs
- ClientBuildManager.cs
- XmlAnyAttributeAttribute.cs
- SmtpFailedRecipientsException.cs
- ExpressionLink.cs
- FontUnit.cs
- PointValueSerializer.cs
- XmlNullResolver.cs
- ToolStripSettings.cs
- ExcCanonicalXml.cs
- IMembershipProvider.cs
- FontNamesConverter.cs
- OrderPreservingPipeliningMergeHelper.cs
- TextEditorSpelling.cs
- XmlSchemaCollection.cs
- HttpCapabilitiesBase.cs
- EdmToObjectNamespaceMap.cs
- AmbientValueAttribute.cs
- QueryCacheEntry.cs
- ObjectNavigationPropertyMapping.cs
- PostBackTrigger.cs
- TreeNodeStyle.cs
- BinaryMessageFormatter.cs
- AttributeQuery.cs
- Viewport3DAutomationPeer.cs
- ProviderSettingsCollection.cs
- SurrogateSelector.cs
- RSAPKCS1KeyExchangeFormatter.cs
- MultipleFilterMatchesException.cs
- DesignerSerializerAttribute.cs
- ToolStripDropDownClosingEventArgs.cs
- ContainerActivationHelper.cs
- XmlSchemaParticle.cs
- RenamedEventArgs.cs
- filewebrequest.cs
- BooleanAnimationUsingKeyFrames.cs
- ListControlConvertEventArgs.cs
- SqlRowUpdatingEvent.cs
- OdbcHandle.cs
- SystemIcons.cs
- XmlJsonReader.cs
- ControlPropertyNameConverter.cs
- ObjectStorage.cs
- PassportIdentity.cs
- CryptographicAttribute.cs
- XslTransform.cs
- ClientApiGenerator.cs
- FamilyTypefaceCollection.cs
- ImportOptions.cs
- HttpWriter.cs
- DependencyPropertyKind.cs
- ListViewGroupItemCollection.cs
- FileRegion.cs
- httpapplicationstate.cs
- DesignerView.Commands.cs
- CollectionConverter.cs
- HierarchicalDataBoundControl.cs
- Schema.cs
- MediaElementAutomationPeer.cs
- COM2TypeInfoProcessor.cs
- Int32Converter.cs
- AttributeEmitter.cs
- DeclarativeCatalogPartDesigner.cs
- WmfPlaceableFileHeader.cs
- EntityEntry.cs
- hwndwrapper.cs
- Transform3D.cs
- SortableBindingList.cs
- SmiEventSink_Default.cs
- TargetConverter.cs
- DecoderFallbackWithFailureFlag.cs
- EpmContentSerializer.cs
- SectionVisual.cs
- SqlAliasesReferenced.cs
- OleDbTransaction.cs
- VirtualPathUtility.cs
- ActiveXMessageFormatter.cs
- CompositeControlDesigner.cs
- SiteMapProvider.cs
- MissingManifestResourceException.cs
- BaseProcessor.cs
- CollectionContainer.cs
- WorkflowExecutor.cs
- HMACMD5.cs
- SurrogateSelector.cs
- Brush.cs