Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HttpCachePolicy.cs
- DefaultAsyncDataDispatcher.cs
- MemberHolder.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- CodeGotoStatement.cs
- Wildcard.cs
- DllNotFoundException.cs
- BitArray.cs
- DateTimeEditor.cs
- PropertyDescriptor.cs
- DbgUtil.cs
- GeometryModel3D.cs
- Int64AnimationBase.cs
- JavascriptCallbackMessageInspector.cs
- CaseInsensitiveHashCodeProvider.cs
- StringUtil.cs
- XmlUtf8RawTextWriter.cs
- LocatorGroup.cs
- QueryStringConverter.cs
- Effect.cs
- SoapIgnoreAttribute.cs
- _SSPISessionCache.cs
- FreezableOperations.cs
- CatalogZoneDesigner.cs
- SessionEndedEventArgs.cs
- PagedDataSource.cs
- figurelength.cs
- SocketManager.cs
- FormsAuthenticationUser.cs
- XmlSchemaSet.cs
- ContainerAction.cs
- X509Certificate2.cs
- ExpressionPrefixAttribute.cs
- ThicknessConverter.cs
- CSharpCodeProvider.cs
- EnumType.cs
- ResourceAssociationSetEnd.cs
- GestureRecognizer.cs
- WeakReferenceEnumerator.cs
- DataShape.cs
- AppSettingsExpressionEditor.cs
- MarginCollapsingState.cs
- FixUpCollection.cs
- Byte.cs
- RepeaterItem.cs
- Method.cs
- ModulesEntry.cs
- FlatButtonAppearance.cs
- LinqDataSourceInsertEventArgs.cs
- Compress.cs
- PersonalizationAdministration.cs
- IsolatedStoragePermission.cs
- RbTree.cs
- _SingleItemRequestCache.cs
- TypeUsage.cs
- CodeTypeParameterCollection.cs
- ExpressionBuilder.cs
- StorageInfo.cs
- CacheChildrenQuery.cs
- DataGridViewTopRowAccessibleObject.cs
- SharedPersonalizationStateInfo.cs
- CookieParameter.cs
- UnhandledExceptionEventArgs.cs
- ObjectQueryExecutionPlan.cs
- ObjectTypeMapping.cs
- AuthenticationModuleElementCollection.cs
- UdpMessageProperty.cs
- safex509handles.cs
- ConfigurationCollectionAttribute.cs
- EntityViewGenerationAttribute.cs
- SourceFileInfo.cs
- TreeWalker.cs
- CharAnimationUsingKeyFrames.cs
- ElementFactory.cs
- DataGridViewImageCell.cs
- RegexCode.cs
- FormsAuthentication.cs
- Image.cs
- IgnoreSection.cs
- VerificationException.cs
- RemoteX509Token.cs
- NumberSubstitution.cs
- MenuItem.cs
- ResourceKey.cs
- PagerSettings.cs
- InkCanvasSelection.cs
- Accessors.cs
- TypeToTreeConverter.cs
- Form.cs
- SerializerProvider.cs
- PackageProperties.cs
- WhiteSpaceTrimStringConverter.cs
- FileSystemEventArgs.cs
- PipelineComponent.cs
- Point4D.cs
- StickyNoteHelper.cs
- ScrollContentPresenter.cs
- UxThemeWrapper.cs
- LZCodec.cs
- ListView.cs