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
- WpfXamlLoader.cs
- TranslateTransform3D.cs
- UnsafeCollabNativeMethods.cs
- SessionPageStateSection.cs
- StringTraceRecord.cs
- SkewTransform.cs
- ResourceCategoryAttribute.cs
- CalendarBlackoutDatesCollection.cs
- SettingsAttributeDictionary.cs
- KeyboardDevice.cs
- DisplayMemberTemplateSelector.cs
- ExpandableObjectConverter.cs
- HttpSessionStateWrapper.cs
- AssociationTypeEmitter.cs
- BaseCAMarshaler.cs
- SymbolEqualComparer.cs
- UrlPropertyAttribute.cs
- CommandPlan.cs
- DataGridTablesFactory.cs
- GACIdentityPermission.cs
- TextRange.cs
- RecognizeCompletedEventArgs.cs
- StdValidatorsAndConverters.cs
- ObservableCollection.cs
- ActivityDesignerAccessibleObject.cs
- PingReply.cs
- SchemaInfo.cs
- XmlHierarchicalDataSourceView.cs
- COAUTHINFO.cs
- SoundPlayerAction.cs
- MaskPropertyEditor.cs
- FocusManager.cs
- Crc32.cs
- FormParameter.cs
- ExpressionBindingCollection.cs
- Win32KeyboardDevice.cs
- MasterPage.cs
- GeometryGroup.cs
- ObjectToken.cs
- __Filters.cs
- StreamingContext.cs
- documentsequencetextpointer.cs
- HuffModule.cs
- TransactionalPackage.cs
- PassportAuthenticationEventArgs.cs
- WinFormsSpinner.cs
- NetCodeGroup.cs
- QilTargetType.cs
- RelationshipDetailsRow.cs
- Control.cs
- SetMemberBinder.cs
- BitmapFrameDecode.cs
- CompilerGeneratedAttribute.cs
- StateElementCollection.cs
- Image.cs
- GenericWebPart.cs
- SessionStateSection.cs
- GridViewPageEventArgs.cs
- RoutingBehavior.cs
- DefaultHttpHandler.cs
- tooltip.cs
- TheQuery.cs
- TextTreeTextElementNode.cs
- ObjectKeyFrameCollection.cs
- BrushMappingModeValidation.cs
- LateBoundChannelParameterCollection.cs
- DefaultPropertiesToSend.cs
- BufferedWebEventProvider.cs
- BrowserInteropHelper.cs
- CallSite.cs
- UIAgentRequest.cs
- ProxyWebPartConnectionCollection.cs
- DesignerActionListCollection.cs
- WebFaultClientMessageInspector.cs
- DirtyTextRange.cs
- ContentDesigner.cs
- WebConvert.cs
- File.cs
- ByteStreamGeometryContext.cs
- GcHandle.cs
- PathSegment.cs
- OletxResourceManager.cs
- EntitySetRetriever.cs
- CommonGetThemePartSize.cs
- MSHTMLHostUtil.cs
- EdmError.cs
- XPathNodePointer.cs
- ImageFormat.cs
- WebPartConnectVerb.cs
- DataTableTypeConverter.cs
- DataGridViewHeaderCell.cs
- RepeaterItem.cs
- ApplicationHost.cs
- BaseServiceProvider.cs
- NullReferenceException.cs
- SqlBulkCopyColumnMapping.cs
- HttpPostServerProtocol.cs
- Point3DAnimation.cs
- GridViewSelectEventArgs.cs
- XmlDocumentType.cs