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
- FrameSecurityDescriptor.cs
- ValuePatternIdentifiers.cs
- PageParserFilter.cs
- ReachVisualSerializer.cs
- ExpressionConverter.cs
- SqlNodeAnnotation.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- DataTableNewRowEvent.cs
- KeyEventArgs.cs
- Wizard.cs
- DrawingState.cs
- FormsAuthenticationUser.cs
- WindowsButton.cs
- HasRunnableWorkflowEvent.cs
- glyphs.cs
- DbSourceCommand.cs
- SoapExtensionReflector.cs
- DoubleAnimationUsingPath.cs
- Oid.cs
- FullTrustAssembliesSection.cs
- NotFiniteNumberException.cs
- TCPClient.cs
- CreateCardRequest.cs
- NullableFloatAverageAggregationOperator.cs
- HttpPostedFile.cs
- XsltContext.cs
- HttpModuleAction.cs
- Int64AnimationBase.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- AncillaryOps.cs
- TextEditorTyping.cs
- Int32AnimationUsingKeyFrames.cs
- AuthenticationModuleElementCollection.cs
- Page.cs
- SiteMapNodeItemEventArgs.cs
- DataGridRow.cs
- SchemaImporterExtensionsSection.cs
- RequestCacheValidator.cs
- SqlVisitor.cs
- CodeCompiler.cs
- InfoCardAsymmetricCrypto.cs
- TemplatePagerField.cs
- StorageMappingItemCollection.cs
- BitmapCacheBrush.cs
- UseManagedPresentationElement.cs
- FileSystemInfo.cs
- TransformProviderWrapper.cs
- ListMarkerLine.cs
- DiscoveryDocumentSearchPattern.cs
- BufferedGraphicsManager.cs
- CollectionViewProxy.cs
- ClientProtocol.cs
- SymmetricAlgorithm.cs
- QilXmlWriter.cs
- UInt16.cs
- SQLByte.cs
- XamlDesignerSerializationManager.cs
- CodeDomConfigurationHandler.cs
- CharUnicodeInfo.cs
- PolygonHotSpot.cs
- DiscoveryClientReferences.cs
- NotificationContext.cs
- OracleTimeSpan.cs
- SecureConversationServiceElement.cs
- __Error.cs
- Size3D.cs
- ToolBarOverflowPanel.cs
- InputScopeNameConverter.cs
- ItemAutomationPeer.cs
- DrawListViewSubItemEventArgs.cs
- ProfessionalColorTable.cs
- SystemIdentity.cs
- MeasureData.cs
- BrushValueSerializer.cs
- SqlOuterApplyReducer.cs
- ProcessModule.cs
- securitymgrsite.cs
- WhitespaceSignificantCollectionAttribute.cs
- SByte.cs
- DocumentScope.cs
- NumericPagerField.cs
- StreamProxy.cs
- XmlSchemaObjectCollection.cs
- ToolStripContainerActionList.cs
- ZoneButton.cs
- ConfigurationSectionGroup.cs
- WebServiceReceiveDesigner.cs
- WebPartsPersonalization.cs
- ModulesEntry.cs
- UnionCodeGroup.cs
- RowVisual.cs
- StatusBarItemAutomationPeer.cs
- PolyBezierSegmentFigureLogic.cs
- TabControlCancelEvent.cs
- MetadataUtilsSmi.cs
- DataTable.cs
- MdImport.cs
- CapabilitiesState.cs
- GlobalItem.cs
- GenericWebPart.cs