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
- ActivityDesignerAccessibleObject.cs
- Enum.cs
- BamlRecordReader.cs
- ColorTransform.cs
- AppManager.cs
- StyleBamlTreeBuilder.cs
- KeyNotFoundException.cs
- CompositionDesigner.cs
- Transform3DCollection.cs
- JsonMessageEncoderFactory.cs
- QueryAccessibilityHelpEvent.cs
- EdmPropertyAttribute.cs
- DoubleKeyFrameCollection.cs
- ValueUnavailableException.cs
- BindingCollection.cs
- XmlSchemaValidationException.cs
- ParserOptions.cs
- XmlTextAttribute.cs
- SqlCommandBuilder.cs
- DriveNotFoundException.cs
- BitConverter.cs
- FixedTextBuilder.cs
- RoleManagerSection.cs
- MsmqOutputMessage.cs
- ValueUnavailableException.cs
- PolyBezierSegment.cs
- RoleBoolean.cs
- FormViewCommandEventArgs.cs
- InternalPermissions.cs
- AnimatedTypeHelpers.cs
- ExtensionDataObject.cs
- TextDecorationCollection.cs
- WindowsFormsSectionHandler.cs
- SoapInteropTypes.cs
- WebPartConnectionCollection.cs
- StackOverflowException.cs
- QilParameter.cs
- CheckBoxAutomationPeer.cs
- DirectoryLocalQuery.cs
- Exceptions.cs
- DateTimeStorage.cs
- ToolBarTray.cs
- OdbcStatementHandle.cs
- PublisherIdentityPermission.cs
- BitmapCodecInfoInternal.cs
- Control.cs
- HttpListenerRequestTraceRecord.cs
- XmlNullResolver.cs
- PolicyValidationException.cs
- PartialTrustVisibleAssemblyCollection.cs
- MouseActionValueSerializer.cs
- EntityDataSourceSelectedEventArgs.cs
- RectIndependentAnimationStorage.cs
- WindowsFont.cs
- ResXResourceReader.cs
- VirtualDirectoryMapping.cs
- DictionaryCustomTypeDescriptor.cs
- Size3DConverter.cs
- MessageDecoder.cs
- CheckBoxFlatAdapter.cs
- CodeSnippetCompileUnit.cs
- XD.cs
- DataSet.cs
- JsonDeserializer.cs
- DbMetaDataFactory.cs
- SQLDouble.cs
- WindowCollection.cs
- FromReply.cs
- ControlBindingsCollection.cs
- DependencyObject.cs
- TreeNodeBinding.cs
- FilterException.cs
- SqlNotificationRequest.cs
- ClientEventManager.cs
- DecimalAnimationBase.cs
- SymDocumentType.cs
- DataSourceXmlElementAttribute.cs
- Rfc2898DeriveBytes.cs
- MobileErrorInfo.cs
- RelatedPropertyManager.cs
- DataQuery.cs
- AdornedElementPlaceholder.cs
- DataConnectionHelper.cs
- MD5HashHelper.cs
- Crc32.cs
- EventWaitHandleSecurity.cs
- TagMapInfo.cs
- TransformerTypeCollection.cs
- TypeUnloadedException.cs
- HostedTransportConfigurationBase.cs
- Transform.cs
- FontConverter.cs
- Helpers.cs
- OptimizedTemplateContentHelper.cs
- SelectorAutomationPeer.cs
- PolyQuadraticBezierSegment.cs
- PageClientProxyGenerator.cs
- BamlMapTable.cs
- PartManifestEntry.cs
- CancelEventArgs.cs