Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // // 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
- WebSysDisplayNameAttribute.cs
- Model3DCollection.cs
- DefaultSection.cs
- SqlEnums.cs
- SchemeSettingElement.cs
- BrowserInteropHelper.cs
- BmpBitmapEncoder.cs
- SortFieldComparer.cs
- Process.cs
- RuleElement.cs
- Help.cs
- Facet.cs
- CssClassPropertyAttribute.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- RegexGroup.cs
- SmiMetaDataProperty.cs
- PreservationFileReader.cs
- HtmlInputText.cs
- ConfigXmlElement.cs
- InternalEnumValidatorAttribute.cs
- PixelFormats.cs
- DoubleLinkListEnumerator.cs
- NamespaceDisplayAutomationPeer.cs
- SimpleTextLine.cs
- PerfCounterSection.cs
- CellQuery.cs
- CorrelationValidator.cs
- GregorianCalendarHelper.cs
- Evidence.cs
- MultiViewDesigner.cs
- HttpWebResponse.cs
- XmlSchemaAppInfo.cs
- ManipulationPivot.cs
- Convert.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- InternalConfigRoot.cs
- AnnotationHelper.cs
- NTAccount.cs
- EFColumnProvider.cs
- SoapAttributeAttribute.cs
- AttributeCollection.cs
- ProviderIncompatibleException.cs
- TextServicesCompartmentEventSink.cs
- serverconfig.cs
- CommandLibraryHelper.cs
- BitmapInitialize.cs
- ObjectComplexPropertyMapping.cs
- ToolStripGripRenderEventArgs.cs
- IsolatedStorageFileStream.cs
- XmlSchemaExternal.cs
- InvalidCommandTreeException.cs
- ConstantSlot.cs
- Context.cs
- ExitEventArgs.cs
- Semaphore.cs
- MergablePropertyAttribute.cs
- BuildProviderAppliesToAttribute.cs
- XmlLoader.cs
- ResourceKey.cs
- ScheduleChanges.cs
- httpstaticobjectscollection.cs
- ProjectionAnalyzer.cs
- ScriptResourceAttribute.cs
- AssociationTypeEmitter.cs
- MappedMetaModel.cs
- TreeNodeStyleCollection.cs
- WebControl.cs
- Buffer.cs
- FieldToken.cs
- CommandManager.cs
- MetadataArtifactLoaderFile.cs
- NonVisualControlAttribute.cs
- DnsCache.cs
- SQLBoolean.cs
- StreamMarshaler.cs
- StretchValidation.cs
- WindowsPen.cs
- _PooledStream.cs
- FormClosedEvent.cs
- StateDesigner.TransitionInfo.cs
- AspCompat.cs
- StateMachine.cs
- QuaternionAnimation.cs
- StylusOverProperty.cs
- Predicate.cs
- WorkflowMarkupSerializationProvider.cs
- WorkflowExecutor.cs
- TextEditorThreadLocalStore.cs
- MaskPropertyEditor.cs
- ReaderWriterLock.cs
- HttpWriter.cs
- XamlSerializer.cs
- ScriptingProfileServiceSection.cs
- VectorCollectionConverter.cs
- DelegateSerializationHolder.cs
- GlyphTypeface.cs
- InternalsVisibleToAttribute.cs
- HandoffBehavior.cs
- MultipleViewPattern.cs
- ExpressionCopier.cs