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
- PauseStoryboard.cs
- AssemblyName.cs
- ShaderEffect.cs
- NameTable.cs
- UnsafePeerToPeerMethods.cs
- HostingMessageProperty.cs
- CatalogZone.cs
- CodeCatchClause.cs
- unsafenativemethodstextservices.cs
- CacheOutputQuery.cs
- Environment.cs
- UInt64.cs
- HttpProfileBase.cs
- MarginsConverter.cs
- DashStyle.cs
- ClientSettingsStore.cs
- TypeUtil.cs
- SafeNativeMethods.cs
- SafeRightsManagementEnvironmentHandle.cs
- RegexFCD.cs
- XPathBuilder.cs
- SvcMapFileLoader.cs
- BinaryObjectInfo.cs
- Version.cs
- KnownTypesProvider.cs
- Activity.cs
- MsmqOutputMessage.cs
- ADMembershipUser.cs
- CodePropertyReferenceExpression.cs
- ReflectionPermission.cs
- BatchWriter.cs
- SecurityTokenTypes.cs
- SqlDataSourceStatusEventArgs.cs
- SystemDiagnosticsSection.cs
- SqlDataSourceCache.cs
- TreeNodeCollection.cs
- AccessibleObject.cs
- ObjectPersistData.cs
- GeneratedContractType.cs
- SqlFacetAttribute.cs
- PixelFormats.cs
- InputProviderSite.cs
- ActivityCodeDomSerializer.cs
- UnicastIPAddressInformationCollection.cs
- CodeNamespaceImport.cs
- XmlWriter.cs
- PrintDialog.cs
- SqlMethodTransformer.cs
- DecimalStorage.cs
- RijndaelManaged.cs
- SqlCrossApplyToCrossJoin.cs
- DesignSurfaceCollection.cs
- WindowsEditBoxRange.cs
- IndentTextWriter.cs
- DPAPIProtectedConfigurationProvider.cs
- QueryGenerator.cs
- NodeLabelEditEvent.cs
- DelegatedStream.cs
- MimeBasePart.cs
- FactoryId.cs
- ListenerConfig.cs
- RepeatButtonAutomationPeer.cs
- FileEnumerator.cs
- XmlSerializerSection.cs
- TemplateColumn.cs
- InternalSafeNativeMethods.cs
- CodeDirectiveCollection.cs
- CategoryValueConverter.cs
- CharEnumerator.cs
- CatchBlock.cs
- WebPartZone.cs
- XmlDataImplementation.cs
- ZeroOpNode.cs
- BasicKeyConstraint.cs
- UnmanagedMarshal.cs
- TrackingServices.cs
- CqlParserHelpers.cs
- CreateParams.cs
- GeneralTransform.cs
- SendActivityDesigner.cs
- SmtpAuthenticationManager.cs
- ItemCheckEvent.cs
- _ShellExpression.cs
- GeneralTransform3DTo2DTo3D.cs
- StylusPointProperties.cs
- SemanticResolver.cs
- SmiXetterAccessMap.cs
- HttpWrapper.cs
- RuntimeConfigLKG.cs
- ToolStripItemGlyph.cs
- ContentPosition.cs
- TransformDescriptor.cs
- Grid.cs
- ProfileSettings.cs
- MultiTrigger.cs
- MemberMemberBinding.cs
- MultiTouchSystemGestureLogic.cs
- NonBatchDirectoryCompiler.cs
- XmlNotation.cs
- EntityUtil.cs