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
- IPEndPoint.cs
- IsolatedStoragePermission.cs
- NetTcpSecurity.cs
- FixedSOMSemanticBox.cs
- RNGCryptoServiceProvider.cs
- InstalledVoice.cs
- Point4D.cs
- SqlDependency.cs
- System.Data_BID.cs
- UTF7Encoding.cs
- WebSysDisplayNameAttribute.cs
- PhoneCallDesigner.cs
- XmlBoundElement.cs
- DigestTraceRecordHelper.cs
- SynchronizedDispatch.cs
- DataExchangeServiceBinder.cs
- TextSearch.cs
- ColorComboBox.cs
- TimeoutValidationAttribute.cs
- HttpHandlersInstallComponent.cs
- SafeCryptoHandles.cs
- SqlCharStream.cs
- InteropAutomationProvider.cs
- InstallerTypeAttribute.cs
- MbpInfo.cs
- Rectangle.cs
- SocketConnection.cs
- StateChangeEvent.cs
- MetadataItemCollectionFactory.cs
- SqlConnectionPoolGroupProviderInfo.cs
- RSAPKCS1SignatureFormatter.cs
- ToolStripDropTargetManager.cs
- PlatformCulture.cs
- ReaderWriterLockWrapper.cs
- ContentFilePart.cs
- OdbcConnection.cs
- __Error.cs
- DesignTimeTemplateParser.cs
- SafeSystemMetrics.cs
- SourceFilter.cs
- FuncTypeConverter.cs
- RouteTable.cs
- GridViewEditEventArgs.cs
- PeerNameRegistration.cs
- TemplateControl.cs
- ScriptModule.cs
- InvalidFilterCriteriaException.cs
- SmtpCommands.cs
- X509Certificate2Collection.cs
- SqlVisitor.cs
- ComEventsMethod.cs
- XamlToRtfParser.cs
- WebZone.cs
- ClientBuildManagerCallback.cs
- TextEndOfSegment.cs
- WindowsSecurityTokenAuthenticator.cs
- RawKeyboardInputReport.cs
- ConfigurationPropertyAttribute.cs
- RowUpdatedEventArgs.cs
- IdnElement.cs
- OutputCacheProfileCollection.cs
- ServiceObjectContainer.cs
- HttpHeaderCollection.cs
- StartUpEventArgs.cs
- TextTreeDeleteContentUndoUnit.cs
- PerformanceCounterNameAttribute.cs
- XPathParser.cs
- BitmapEffectGroup.cs
- MetabaseServerConfig.cs
- PasswordRecovery.cs
- Line.cs
- HideDisabledControlAdapter.cs
- OdbcParameter.cs
- ProtectedConfiguration.cs
- ParameterCollection.cs
- FlagsAttribute.cs
- TreeNodeCollection.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- XmlDataSource.cs
- ChangesetResponse.cs
- Process.cs
- SoapClientProtocol.cs
- GridSplitter.cs
- OdbcFactory.cs
- thaishape.cs
- ScriptingWebServicesSectionGroup.cs
- TimerEventSubscriptionCollection.cs
- xml.cs
- SetMemberBinder.cs
- VideoDrawing.cs
- UserInitiatedNavigationPermission.cs
- CodeDirectoryCompiler.cs
- ModelChangedEventArgsImpl.cs
- AnnotationHelper.cs
- MailHeaderInfo.cs
- EdmProperty.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- DataServiceBuildProvider.cs
- DataServiceHost.cs
- updateconfighost.cs