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
- SafeNativeMethodsOther.cs
- RegisteredExpandoAttribute.cs
- ConfigUtil.cs
- CodeMemberField.cs
- HashMembershipCondition.cs
- _LoggingObject.cs
- login.cs
- Quaternion.cs
- ConfigurationStrings.cs
- CompiledXpathExpr.cs
- MenuItemBinding.cs
- CanExecuteRoutedEventArgs.cs
- TabletDeviceInfo.cs
- VariableQuery.cs
- ReturnEventArgs.cs
- TransactionTraceIdentifier.cs
- ToolStripPanel.cs
- Internal.cs
- LambdaExpression.cs
- GetPageNumberCompletedEventArgs.cs
- ListSourceHelper.cs
- SingleObjectCollection.cs
- PolicyManager.cs
- FieldDescriptor.cs
- DocumentScope.cs
- ToolStripTextBox.cs
- ConstNode.cs
- ProfileSettingsCollection.cs
- SmtpTransport.cs
- XmlDataCollection.cs
- HandlerBase.cs
- ResXResourceWriter.cs
- TextTreeNode.cs
- MsmqBindingFilter.cs
- PassportAuthenticationEventArgs.cs
- TimelineClockCollection.cs
- Misc.cs
- WebServiceErrorEvent.cs
- OrderedDictionary.cs
- SoapFault.cs
- ListenerConfig.cs
- MetadataArtifactLoaderResource.cs
- UserControl.cs
- RichTextBoxConstants.cs
- TypedElement.cs
- SchemaMapping.cs
- List.cs
- InkCanvasSelectionAdorner.cs
- PositiveTimeSpanValidatorAttribute.cs
- DataGridViewElement.cs
- DockPattern.cs
- MatrixUtil.cs
- ResourceReferenceKeyNotFoundException.cs
- RadioButton.cs
- NavigatorInput.cs
- BulletChrome.cs
- EllipseGeometry.cs
- GifBitmapEncoder.cs
- EndPoint.cs
- DuplicateWaitObjectException.cs
- PathData.cs
- LogLogRecord.cs
- ProgressChangedEventArgs.cs
- Memoizer.cs
- XPathChildIterator.cs
- ObjectComplexPropertyMapping.cs
- _NestedSingleAsyncResult.cs
- DoubleLinkList.cs
- PropertyDescriptor.cs
- BaseCollection.cs
- PackageDigitalSignatureManager.cs
- EnumUnknown.cs
- ColorMatrix.cs
- LinqDataSourceValidationException.cs
- QilXmlWriter.cs
- CompilerCollection.cs
- InstanceDescriptor.cs
- HelpEvent.cs
- Style.cs
- FormatSettings.cs
- UserPersonalizationStateInfo.cs
- ColorAnimationUsingKeyFrames.cs
- WsatStrings.cs
- DataControlFieldCollection.cs
- WindowsSolidBrush.cs
- MetadataArtifactLoaderComposite.cs
- _BasicClient.cs
- HttpApplicationStateBase.cs
- ServiceAuthorizationManager.cs
- BamlResourceSerializer.cs
- DataGridViewLayoutData.cs
- SmtpReplyReader.cs
- ObjectAnimationBase.cs
- BookmarkResumptionRecord.cs
- DataListItemCollection.cs
- EndpointDispatcherTable.cs
- UpdatePanel.cs
- FormViewDeletedEventArgs.cs
- DES.cs
- XPathDocument.cs