Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Interop / WindowInteropHelper.cs / 1305600 / WindowInteropHelper.cs
//---------------------------------------------------------------------------- // // File: WindowInteropHelper.cs // // Description: Implements Avalon WindowInteropHelper classes, which helps // interop b/w legacy and Avalon Window. // // Created: 05/06/03 // // Copyright (C) 2001 by Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System; using System.Windows; using System.Windows.Interop; using System.Security; using System.Security.Permissions; using System.Diagnostics; using MS.Internal; using MS.Win32; namespace System.Windows.Interop { #region class WindowInteropHelper ////// Implements Avalon WindowInteropHelper classes, which helps /// interop b/w legacy and Avalon Window. /// public sealed class WindowInteropHelper { //--------------------------------------------------- // // Constructors // //--------------------------------------------------- #region Constructors ////// /// /// public WindowInteropHelper(Window window) { if (window == null) throw new ArgumentNullException("window"); _window = window; } #endregion Constructors //---------------------------------------------------- // // Public Properties // //--------------------------------------------------- #region Public Properties ////// Get the Handle of the window /// ////// Callers must have UIPermission(UIPermissionWindow.AllWindows) to call this API. /// ////// Critical: Exposes a handle /// PublicOK: There is a demand , this API not available in internet zone /// public IntPtr Handle { [SecurityCritical] get { SecurityHelper.DemandUIWindowPermission(); return CriticalHandle; } } ////// Critical: Exposes a handle /// internal IntPtr CriticalHandle { [SecurityCritical] get { Invariant.Assert(_window != null, "Cannot be null since we verify in the constructor"); return _window.CriticalHandle; } } ////// Get/Set the Owner handle of the window /// ////// Callers must have UIPermission(UIPermissionWindow.AllWindows) to call this API. /// ////// Critical: Exposes a handle /// PublicOK: There is a demand , this API not available in internet zone /// public IntPtr Owner { [SecurityCritical] get { SecurityHelper.DemandUIWindowPermission(); Debug.Assert(_window != null, "Cannot be null since we verify in the constructor"); return _window.OwnerHandle; } [SecurityCritical] set { SecurityHelper.DemandUIWindowPermission(); Debug.Assert(_window != null, "Cannot be null since we verify in the constructor"); // error checking done in Window _window.OwnerHandle = value; } } #endregion Public Properties //---------------------------------------------------- // // Public Methods // //---------------------------------------------------- #region Public Methods ////// Create the hwnd of the Window if the hwnd is not created yet. /// ////// Critical: Create and exposes the window handle. /// PublicOK: We demand UIPermission. /// [SecurityCritical] public IntPtr EnsureHandle() { SecurityHelper.DemandUIWindowPermission(); if (CriticalHandle == IntPtr.Zero) { _window.CreateSourceWindow(false /*create hwnd during show*/); } return CriticalHandle; } #endregion Public Methods //---------------------------------------------- // // Private Fields // //---------------------------------------------- #region Private Fields private Window _window; #endregion Private Members } #endregion class WindowInteropHelper } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XamlSerializerUtil.cs
- DataGridViewTopLeftHeaderCell.cs
- FunctionImportElement.cs
- TransformGroup.cs
- RequestResizeEvent.cs
- TablePattern.cs
- HtmlButton.cs
- DateTimeFormatInfoScanner.cs
- BamlLocalizableResourceKey.cs
- XmlElementCollection.cs
- QilGenerator.cs
- HttpSessionStateBase.cs
- TdsParserSessionPool.cs
- ListContractAdapter.cs
- TableItemStyle.cs
- xml.cs
- DesignerTextBoxAdapter.cs
- login.cs
- ChangeInterceptorAttribute.cs
- oledbconnectionstring.cs
- assemblycache.cs
- InstanceContextMode.cs
- WebDisplayNameAttribute.cs
- DataGridItem.cs
- URLString.cs
- __ConsoleStream.cs
- TableParagraph.cs
- SqlCharStream.cs
- D3DImage.cs
- _NtlmClient.cs
- Normalization.cs
- DataControlButton.cs
- PerfCounterSection.cs
- JapaneseCalendar.cs
- CommonDialog.cs
- QilLiteral.cs
- ValidatorUtils.cs
- XmlIterators.cs
- CacheVirtualItemsEvent.cs
- SafeMemoryMappedViewHandle.cs
- TextServicesCompartmentEventSink.cs
- CodeDirectiveCollection.cs
- ProviderIncompatibleException.cs
- MimeParameter.cs
- EventProxy.cs
- TypeSystemProvider.cs
- AlternateView.cs
- ObfuscationAttribute.cs
- manifestimages.cs
- HwndMouseInputProvider.cs
- LassoHelper.cs
- SingleQueryOperator.cs
- LinqToSqlWrapper.cs
- PropertyGroupDescription.cs
- InputMethodStateChangeEventArgs.cs
- StructuredProperty.cs
- IOThreadScheduler.cs
- BindingExpressionUncommonField.cs
- ContextMenuStrip.cs
- CodeFieldReferenceExpression.cs
- Propagator.JoinPropagator.SubstitutingCloneVisitor.cs
- SubqueryTrackingVisitor.cs
- DataAdapter.cs
- LockedActivityGlyph.cs
- InputProcessorProfiles.cs
- DependentTransaction.cs
- Color.cs
- ResourceDisplayNameAttribute.cs
- Margins.cs
- XmlQuerySequence.cs
- AdCreatedEventArgs.cs
- SetStoryboardSpeedRatio.cs
- XmlCharType.cs
- OperationPerformanceCounters.cs
- PageThemeBuildProvider.cs
- NetCodeGroup.cs
- Int16.cs
- DetailsViewPageEventArgs.cs
- Section.cs
- SemaphoreSecurity.cs
- SecurityDocument.cs
- FreezableDefaultValueFactory.cs
- Convert.cs
- CalculatedColumn.cs
- QueryContinueDragEvent.cs
- WriteableOnDemandPackagePart.cs
- AsymmetricKeyExchangeFormatter.cs
- AdPostCacheSubstitution.cs
- QilStrConcat.cs
- ConvertEvent.cs
- ListParaClient.cs
- BufferCache.cs
- QueryStringHandler.cs
- ConstrainedDataObject.cs
- OutputCacheProfileCollection.cs
- IntSecurity.cs
- linebase.cs
- TextWriterTraceListener.cs
- Overlapped.cs
- GlyphRun.cs