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
- PolicyValidationException.cs
- OracleInfoMessageEventArgs.cs
- AnnotationService.cs
- CollectionTypeElement.cs
- LambdaCompiler.Unary.cs
- XslTransform.cs
- ResizeGrip.cs
- WebPartZone.cs
- UnhandledExceptionEventArgs.cs
- AttributeUsageAttribute.cs
- DataList.cs
- figurelength.cs
- RIPEMD160Managed.cs
- ConnectionStringsExpressionBuilder.cs
- UnknownWrapper.cs
- DocumentSchemaValidator.cs
- DateTimeValueSerializerContext.cs
- MediaPlayerState.cs
- EncodingDataItem.cs
- TransmissionStrategy.cs
- BuildDependencySet.cs
- IsolatedStorageFile.cs
- XmlSchemaSimpleType.cs
- BridgeDataRecord.cs
- Assert.cs
- TransactionScopeDesigner.cs
- ThemeDirectoryCompiler.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- MaterialGroup.cs
- ListBox.cs
- SizeKeyFrameCollection.cs
- SafeWaitHandle.cs
- SendKeys.cs
- XmlSchemaValidationException.cs
- XmlWellformedWriter.cs
- SqlVisitor.cs
- FileDetails.cs
- SmiSettersStream.cs
- TextTreeDeleteContentUndoUnit.cs
- BinaryObjectInfo.cs
- XmlStreamNodeWriter.cs
- DataTableReaderListener.cs
- DesignTimeParseData.cs
- Types.cs
- SQLByteStorage.cs
- SectionXmlInfo.cs
- CacheChildrenQuery.cs
- VariantWrapper.cs
- Helpers.cs
- EmptyReadOnlyDictionaryInternal.cs
- DisplayMemberTemplateSelector.cs
- SHA512CryptoServiceProvider.cs
- WebContext.cs
- TextDecoration.cs
- LZCodec.cs
- HtmlCommandAdapter.cs
- ProtectedConfiguration.cs
- PointF.cs
- AnimationLayer.cs
- WsatRegistrationHeader.cs
- Dispatcher.cs
- RadioButtonStandardAdapter.cs
- Ray3DHitTestResult.cs
- SystemColors.cs
- TextParaClient.cs
- CheckBoxRenderer.cs
- PieceDirectory.cs
- Table.cs
- OleDbDataReader.cs
- TextProperties.cs
- CacheVirtualItemsEvent.cs
- HwndSubclass.cs
- XmlDictionary.cs
- SqlCacheDependencySection.cs
- RequestCacheManager.cs
- RectangleHotSpot.cs
- SafeEventLogReadHandle.cs
- CompilerResults.cs
- RankException.cs
- XmlILOptimizerVisitor.cs
- StandardCommandToolStripMenuItem.cs
- CompositeActivityMarkupSerializer.cs
- HostExecutionContextManager.cs
- XmlDataProvider.cs
- MarshalByValueComponent.cs
- ParserOptions.cs
- ValidationVisibilityAttribute.cs
- DriveInfo.cs
- ColumnResult.cs
- EventWaitHandleSecurity.cs
- FileStream.cs
- CorrelationManager.cs
- ElementMarkupObject.cs
- InternalSafeNativeMethods.cs
- SetIndexBinder.cs
- WizardForm.cs
- GlyphRun.cs
- HttpWebRequest.cs
- Rijndael.cs
- webproxy.cs