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
- StartUpEventArgs.cs
- SpotLight.cs
- AmbientValueAttribute.cs
- TableItemPatternIdentifiers.cs
- RoutedCommand.cs
- GenericRootAutomationPeer.cs
- RuntimeConfigurationRecord.cs
- DebuggerService.cs
- DropAnimation.xaml.cs
- XMLSyntaxException.cs
- DataGridSortingEventArgs.cs
- Point3D.cs
- UnsafeNativeMethods.cs
- XPathParser.cs
- SiteMembershipCondition.cs
- HttpAsyncResult.cs
- XPathMessageFilter.cs
- ButtonStandardAdapter.cs
- DataBoundControl.cs
- ObjectResult.cs
- WindowProviderWrapper.cs
- XmlnsDefinitionAttribute.cs
- BooleanProjectedSlot.cs
- IListConverters.cs
- OpCellTreeNode.cs
- TextRangeEdit.cs
- BinaryObjectWriter.cs
- CodeDomConfigurationHandler.cs
- DesignerActionGlyph.cs
- XsltLibrary.cs
- WrappedIUnknown.cs
- Compilation.cs
- OrderedDictionary.cs
- StreamBodyWriter.cs
- WebPartsSection.cs
- XmlQuerySequence.cs
- XmlValueConverter.cs
- CaseStatement.cs
- KeyboardDevice.cs
- SecurityListenerSettingsLifetimeManager.cs
- CryptoApi.cs
- TextParagraphProperties.cs
- TransformPattern.cs
- XmlCountingReader.cs
- NullRuntimeConfig.cs
- HtmlTextArea.cs
- RadialGradientBrush.cs
- TypedColumnHandler.cs
- X509SecurityTokenAuthenticator.cs
- TextOptions.cs
- FormatException.cs
- FileDialogPermission.cs
- FrameworkRichTextComposition.cs
- RadialGradientBrush.cs
- EditableTreeList.cs
- PropertyValue.cs
- WebPartTransformer.cs
- FontFamily.cs
- TerminateDesigner.cs
- StorageComplexTypeMapping.cs
- MemberMemberBinding.cs
- HostedController.cs
- DataGridRelationshipRow.cs
- WebMethodAttribute.cs
- HtmlSelectionListAdapter.cs
- HttpContextServiceHost.cs
- Rotation3DAnimationUsingKeyFrames.cs
- PlatformNotSupportedException.cs
- CompiledXpathExpr.cs
- InlinedAggregationOperator.cs
- PageTheme.cs
- Part.cs
- DbProviderFactories.cs
- ImportContext.cs
- DbDataReader.cs
- OutputCacheProfileCollection.cs
- Scheduling.cs
- ViewBox.cs
- PersonalizationState.cs
- Attributes.cs
- TableCell.cs
- XmlSerializer.cs
- GraphicsContainer.cs
- IPAddressCollection.cs
- FontSourceCollection.cs
- _CacheStreams.cs
- QuaternionValueSerializer.cs
- ViewManager.cs
- ObjectMemberMapping.cs
- TraceSection.cs
- XmlDataSource.cs
- SqlDataReader.cs
- GlobalAllocSafeHandle.cs
- TableLayoutCellPaintEventArgs.cs
- SafeEventLogReadHandle.cs
- BufferedGraphicsContext.cs
- Point4D.cs
- CursorConverter.cs
- TargetParameterCountException.cs
- AssertUtility.cs