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
- PropertyEmitter.cs
- XmlSchemaImport.cs
- PropertyFilter.cs
- LinkUtilities.cs
- FormParameter.cs
- SHA1.cs
- NavigationProgressEventArgs.cs
- RpcResponse.cs
- ToolStripContentPanel.cs
- MSG.cs
- UpdateCommand.cs
- DataBinding.cs
- PartitionResolver.cs
- NegotiationTokenProvider.cs
- WebPartCancelEventArgs.cs
- DefaultAssemblyResolver.cs
- VSWCFServiceContractGenerator.cs
- Baml2006ReaderContext.cs
- PointCollection.cs
- Int64AnimationUsingKeyFrames.cs
- GeneralTransformCollection.cs
- HostUtils.cs
- NavigationHelper.cs
- SiteMapSection.cs
- IgnorePropertiesAttribute.cs
- SqlFunctionAttribute.cs
- Material.cs
- XmlDocumentType.cs
- WinEventHandler.cs
- SimpleMailWebEventProvider.cs
- ViewValidator.cs
- SmiTypedGetterSetter.cs
- TextAdaptor.cs
- ClientTargetSection.cs
- Compiler.cs
- ConnectionManagementSection.cs
- ResourceExpressionBuilder.cs
- LayoutEditorPart.cs
- ToolBar.cs
- KeyBinding.cs
- EmptyQuery.cs
- XhtmlBasicLinkAdapter.cs
- HtmlTitle.cs
- XmlSchemaFacet.cs
- Convert.cs
- CodeGenHelper.cs
- LogicalTreeHelper.cs
- UnsignedPublishLicense.cs
- AttributeAction.cs
- RelativeSource.cs
- X509IssuerSerialKeyIdentifierClause.cs
- typedescriptorpermission.cs
- QilBinary.cs
- URI.cs
- DataRowExtensions.cs
- EventsTab.cs
- TempFiles.cs
- SamlSecurityTokenAuthenticator.cs
- SegmentTree.cs
- DefaultBinder.cs
- BinaryFormatter.cs
- LinqDataSource.cs
- EntityDataSourceViewSchema.cs
- DBCommandBuilder.cs
- StandardBindingImporter.cs
- DetailsViewCommandEventArgs.cs
- ScriptReferenceEventArgs.cs
- TextBoxAutomationPeer.cs
- CaseDesigner.xaml.cs
- TextModifier.cs
- TrackingProfile.cs
- HttpRequestTraceRecord.cs
- ShutDownListener.cs
- ThrowHelper.cs
- DropDownList.cs
- GraphicsState.cs
- ImpersonationContext.cs
- ActivityValidator.cs
- UInt64Converter.cs
- ModuleBuilderData.cs
- Delay.cs
- SpoolingTask.cs
- DataBoundControl.cs
- DataProtection.cs
- TableHeaderCell.cs
- ClientUrlResolverWrapper.cs
- SqlInfoMessageEvent.cs
- IntegerValidator.cs
- XmlNodeChangedEventArgs.cs
- DbUpdateCommandTree.cs
- SoapObjectInfo.cs
- XmlNamespaceManager.cs
- ConsoleCancelEventArgs.cs
- XmlEntityReference.cs
- TextServicesCompartmentEventSink.cs
- PropertyEmitter.cs
- SqlTriggerContext.cs
- TypeExtensionConverter.cs
- WebReferenceOptions.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs