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
- UIHelper.cs
- LayoutInformation.cs
- QueryOutputWriter.cs
- TextUtf8RawTextWriter.cs
- BaseParser.cs
- QilInvokeEarlyBound.cs
- ServiceMemoryGates.cs
- RootBuilder.cs
- Geometry3D.cs
- CollectionBuilder.cs
- WebMessageBodyStyleHelper.cs
- BaseValidatorDesigner.cs
- SpeakProgressEventArgs.cs
- WebEventCodes.cs
- HierarchicalDataBoundControl.cs
- DrawingVisualDrawingContext.cs
- MULTI_QI.cs
- Columns.cs
- FormViewModeEventArgs.cs
- ObjectContextServiceProvider.cs
- TemplateControlParser.cs
- GridViewSortEventArgs.cs
- RegionData.cs
- BinaryConverter.cs
- AutomationProperties.cs
- SortFieldComparer.cs
- DateTimeFormatInfoScanner.cs
- NotifyIcon.cs
- Membership.cs
- EventsTab.cs
- Buffer.cs
- XmlDocumentSerializer.cs
- RadioButtonDesigner.cs
- ZoneLinkButton.cs
- ImageAutomationPeer.cs
- SchemaAttDef.cs
- UpdateRecord.cs
- Encoder.cs
- PriorityQueue.cs
- PermissionToken.cs
- ResourceSet.cs
- DNS.cs
- MdiWindowListStrip.cs
- Storyboard.cs
- ObjectResult.cs
- FixedPage.cs
- HtmlInputControl.cs
- ReflectionHelper.cs
- PerfCounterSection.cs
- Geometry.cs
- KoreanLunisolarCalendar.cs
- HttpChannelListener.cs
- ContentPlaceHolder.cs
- InvalidWMPVersionException.cs
- Helper.cs
- Pair.cs
- HtmlInputSubmit.cs
- UniqueIdentifierService.cs
- XmlDataLoader.cs
- EmulateRecognizeCompletedEventArgs.cs
- DataGridViewTextBoxEditingControl.cs
- PasswordPropertyTextAttribute.cs
- IdentityModelDictionary.cs
- RepeatInfo.cs
- FrameSecurityDescriptor.cs
- AssemblyAttributes.cs
- GridViewDeleteEventArgs.cs
- HtmlPageAdapter.cs
- RelatedImageListAttribute.cs
- ClientFormsIdentity.cs
- PerfCounters.cs
- Number.cs
- PasswordBoxAutomationPeer.cs
- ExtractorMetadata.cs
- Int32CAMarshaler.cs
- StickyNote.cs
- Control.cs
- TextTreeFixupNode.cs
- ManualResetEvent.cs
- NonVisualControlAttribute.cs
- HostedElements.cs
- DescriptionAttribute.cs
- XmlNodeChangedEventArgs.cs
- ScriptIgnoreAttribute.cs
- LayoutTableCell.cs
- CardSpacePolicyElement.cs
- TrackingMemoryStream.cs
- CustomAttributeFormatException.cs
- ASCIIEncoding.cs
- AsyncDataRequest.cs
- BufferedStream.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- ResourceReferenceExpressionConverter.cs
- ConfigXmlWhitespace.cs
- ReverseComparer.cs
- UrlMappingsSection.cs
- SQLString.cs
- XmlAttributeProperties.cs
- OpacityConverter.cs
- HeaderCollection.cs