Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / DialogWindow.cs / 1407647 / DialogWindow.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation { using System.Windows; using System.Activities.Presentation.View; using System.Windows.Interop; using System.Windows.Input; using System.ComponentModel; internal class DialogWindow : Window { public static readonly DependencyProperty ContextProperty = DependencyProperty.Register("Context", typeof(EditingContext), typeof(DialogWindow)); string helpKeyword = HelpKeywords.HomePage; public EditingContext Context { get { return (EditingContext)GetValue(ContextProperty); } set { SetValue(ContextProperty, value); } } protected string HelpKeyword { get { return this.helpKeyword; } set { this.helpKeyword = value; } } protected override void OnSourceInitialized(EventArgs e) { base.OnSourceInitialized(e); this.HideMinMaxButton(); this.ShowContextHelpButton(); this.HideIcon(); this.AddWindowsHook(OnHookedWindowMessage); this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Help, new ExecutedRoutedEventHandler(OnHelpExecuted))); this.Closing += new CancelEventHandler(OnWindowClosing); } static IntPtr OnHookedWindowMessage(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { if (msg == Win32Interop.WM_SYSCOMMAND && wParam.ToInt64() == (long)Win32Interop.SC_CONTEXTHELP) { var rootVisual = HwndSource.FromHwnd(hwnd).RootVisual; var focusedElement = FocusManager.GetFocusedElement(rootVisual); if (focusedElement == null) { focusedElement = rootVisual as IInputElement; } ApplicationCommands.Help.Execute(null, focusedElement); handled = true; } // According to MSDN, zero should be returned after handling WM_SYSCOMMAND. // If this message is unhandled, it's still safe to return zero // because WPF framework (HwndSource) will return zero anyway if the // message is unhandled. return IntPtr.Zero; } void OnWindowClosing(object sender, CancelEventArgs e) { // Note: Do NOT remove the hook if the close operation needs to be canceled. this.RemoveWindowsHook(OnHookedWindowMessage); } void OnHelpExecuted(Object sender, ExecutedRoutedEventArgs e) { if (this.Context != null) { IIntegratedHelpService help = this.Context.Services.GetService(); if (help != null) { help.ShowHelpFromKeyword(this.helpKeyword); return; } } System.Diagnostics.Process.Start(SR.DefaultHelpUrl); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation { using System.Windows; using System.Activities.Presentation.View; using System.Windows.Interop; using System.Windows.Input; using System.ComponentModel; internal class DialogWindow : Window { public static readonly DependencyProperty ContextProperty = DependencyProperty.Register("Context", typeof(EditingContext), typeof(DialogWindow)); string helpKeyword = HelpKeywords.HomePage; public EditingContext Context { get { return (EditingContext)GetValue(ContextProperty); } set { SetValue(ContextProperty, value); } } protected string HelpKeyword { get { return this.helpKeyword; } set { this.helpKeyword = value; } } protected override void OnSourceInitialized(EventArgs e) { base.OnSourceInitialized(e); this.HideMinMaxButton(); this.ShowContextHelpButton(); this.HideIcon(); this.AddWindowsHook(OnHookedWindowMessage); this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Help, new ExecutedRoutedEventHandler(OnHelpExecuted))); this.Closing += new CancelEventHandler(OnWindowClosing); } static IntPtr OnHookedWindowMessage(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { if (msg == Win32Interop.WM_SYSCOMMAND && wParam.ToInt64() == (long)Win32Interop.SC_CONTEXTHELP) { var rootVisual = HwndSource.FromHwnd(hwnd).RootVisual; var focusedElement = FocusManager.GetFocusedElement(rootVisual); if (focusedElement == null) { focusedElement = rootVisual as IInputElement; } ApplicationCommands.Help.Execute(null, focusedElement); handled = true; } // According to MSDN, zero should be returned after handling WM_SYSCOMMAND. // If this message is unhandled, it's still safe to return zero // because WPF framework (HwndSource) will return zero anyway if the // message is unhandled. return IntPtr.Zero; } void OnWindowClosing(object sender, CancelEventArgs e) { // Note: Do NOT remove the hook if the close operation needs to be canceled. this.RemoveWindowsHook(OnHookedWindowMessage); } void OnHelpExecuted(Object sender, ExecutedRoutedEventArgs e) { if (this.Context != null) { IIntegratedHelpService help = this.Context.Services.GetService (); if (help != null) { help.ShowHelpFromKeyword(this.helpKeyword); return; } } System.Diagnostics.Process.Start(SR.DefaultHelpUrl); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FacetChecker.cs
- XmlDataProvider.cs
- TextLineBreak.cs
- BeginStoryboard.cs
- GetPageCompletedEventArgs.cs
- ICspAsymmetricAlgorithm.cs
- NominalTypeEliminator.cs
- BitStack.cs
- DesignerHelpers.cs
- TextLineBreak.cs
- ClientRolePrincipal.cs
- ListViewUpdateEventArgs.cs
- NamedPipeChannelListener.cs
- Encoder.cs
- JavaScriptSerializer.cs
- CryptoApi.cs
- CalendarAutoFormatDialog.cs
- ListenerConnectionDemuxer.cs
- Console.cs
- SiteOfOriginContainer.cs
- SslStream.cs
- XmlReflectionMember.cs
- DataGridViewColumnCollectionEditor.cs
- DataSourceView.cs
- ControlIdConverter.cs
- RemoveStoryboard.cs
- BoolExpr.cs
- AsyncInvokeOperation.cs
- IPipelineRuntime.cs
- ProxyWebPartManagerDesigner.cs
- PenCursorManager.cs
- BlockCollection.cs
- NativeMethods.cs
- UserControlParser.cs
- ListViewItem.cs
- ProtocolsConfigurationEntry.cs
- ConfigurationManager.cs
- AnnotationHelper.cs
- FunctionNode.cs
- DeferredBinaryDeserializerExtension.cs
- SQLChars.cs
- IgnoreFlushAndCloseStream.cs
- AttributeProviderAttribute.cs
- PeerToPeerException.cs
- IEnumerable.cs
- BidOverLoads.cs
- ToolboxItemAttribute.cs
- EraserBehavior.cs
- UIHelper.cs
- ComboBoxRenderer.cs
- PeerToPeerException.cs
- StateDesigner.cs
- CodeRegionDirective.cs
- Win32SafeHandles.cs
- HwndHost.cs
- ThreadSafeList.cs
- WebBrowserContainer.cs
- ImpersonateTokenRef.cs
- HandleCollector.cs
- WebPartConnectionsDisconnectVerb.cs
- DocumentXmlWriter.cs
- EventHandlerList.cs
- SiteMapHierarchicalDataSourceView.cs
- ProcessHostMapPath.cs
- MulticastNotSupportedException.cs
- RightsManagementPermission.cs
- OleDbRowUpdatedEvent.cs
- HierarchicalDataTemplate.cs
- Selection.cs
- TimeIntervalCollection.cs
- ImmutableCollection.cs
- ItemChangedEventArgs.cs
- TraceEventCache.cs
- NetStream.cs
- Triangle.cs
- FocusWithinProperty.cs
- DataSysAttribute.cs
- DbConnectionPool.cs
- PageThemeCodeDomTreeGenerator.cs
- SeverityFilter.cs
- _NetworkingPerfCounters.cs
- GlyphRunDrawing.cs
- InvokeGenerator.cs
- ResourceDefaultValueAttribute.cs
- KeyboardEventArgs.cs
- DropDownList.cs
- MarginCollapsingState.cs
- BindingGroup.cs
- WebBrowsableAttribute.cs
- SequenceFullException.cs
- StylusEditingBehavior.cs
- CryptoProvider.cs
- UriParserTemplates.cs
- SapiInterop.cs
- DBCommandBuilder.cs
- DataServiceQuery.cs
- ExpressionDumper.cs
- filewebrequest.cs
- EventBookmark.cs
- X509Chain.cs