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
- XmlReader.cs
- DataGridViewDataErrorEventArgs.cs
- SequentialWorkflowRootDesigner.cs
- CustomAttribute.cs
- DataRow.cs
- X509CertificateValidationMode.cs
- RowParagraph.cs
- InvalidContentTypeException.cs
- SuppressMessageAttribute.cs
- DataStreamFromComStream.cs
- XamlHostingSectionGroup.cs
- SystemParameters.cs
- InternalBufferOverflowException.cs
- MdiWindowListStrip.cs
- DeploymentSection.cs
- recordstate.cs
- XmlHelper.cs
- ComAwareEventInfo.cs
- DbConnectionInternal.cs
- PropertyEntry.cs
- FlowLayout.cs
- Lasso.cs
- ReachSerializableProperties.cs
- QilLoop.cs
- IISUnsafeMethods.cs
- ByteStack.cs
- ButtonFlatAdapter.cs
- DataKey.cs
- DrawListViewItemEventArgs.cs
- Keywords.cs
- Confirm.cs
- PtsContext.cs
- UInt16Converter.cs
- FormClosedEvent.cs
- LinkedResourceCollection.cs
- TableStyle.cs
- QualifiedCellIdBoolean.cs
- AppDomainManager.cs
- WebPartVerb.cs
- ConstraintCollection.cs
- OleDbEnumerator.cs
- UIElementIsland.cs
- DataSourceCache.cs
- CharAnimationUsingKeyFrames.cs
- TraceSection.cs
- ScriptReferenceBase.cs
- XmlEntity.cs
- GeneralTransform3DGroup.cs
- InputLangChangeEvent.cs
- WebPartDescriptionCollection.cs
- EDesignUtil.cs
- Inflater.cs
- GeneralTransform2DTo3DTo2D.cs
- TreeIterator.cs
- CorrelationQueryBehavior.cs
- JsonFaultDetail.cs
- PrimitiveDataContract.cs
- CollectionViewProxy.cs
- CodeDomConfigurationHandler.cs
- CommandTreeTypeHelper.cs
- RelatedPropertyManager.cs
- EventRouteFactory.cs
- DesignerTransactionCloseEvent.cs
- Image.cs
- ResourceDescriptionAttribute.cs
- MimeParameters.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- SettingsPropertyNotFoundException.cs
- MetadataItemCollectionFactory.cs
- InkCanvasSelectionAdorner.cs
- unitconverter.cs
- CursorConverter.cs
- ListItemCollection.cs
- TextSchema.cs
- ProfilePropertySettings.cs
- CompositeScriptReference.cs
- XPathScanner.cs
- AssemblyInfo.cs
- RunWorkerCompletedEventArgs.cs
- InputScopeNameConverter.cs
- CodeTypeMemberCollection.cs
- BinaryUtilClasses.cs
- SmtpFailedRecipientException.cs
- PropertyBuilder.cs
- WeakReferenceEnumerator.cs
- ToggleButton.cs
- DbDataSourceEnumerator.cs
- ButtonBase.cs
- CLRBindingWorker.cs
- DataServiceRequestOfT.cs
- ColorTranslator.cs
- X509ChainPolicy.cs
- BuildProvider.cs
- EntityConnectionStringBuilderItem.cs
- UpdateCommand.cs
- QilTernary.cs
- WebPartActionVerb.cs
- WrapperEqualityComparer.cs
- ParallelTimeline.cs
- ReversePositionQuery.cs