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
- MasterPageBuildProvider.cs
- XsdValidatingReader.cs
- ScriptResourceHandler.cs
- CodeChecksumPragma.cs
- StylusEventArgs.cs
- Typography.cs
- ILGen.cs
- PersonalizationProviderHelper.cs
- StateDesigner.cs
- UpDownEvent.cs
- XmlNodeReader.cs
- SafeCertificateContext.cs
- RequestQueue.cs
- XmlCountingReader.cs
- Span.cs
- DefaultMemberAttribute.cs
- ProviderException.cs
- QueryTreeBuilder.cs
- XsdDateTime.cs
- SqlClientWrapperSmiStreamChars.cs
- StrokeNodeOperations2.cs
- SqlDependencyUtils.cs
- Hex.cs
- LayoutEditorPart.cs
- ExternalFile.cs
- ConstNode.cs
- CodeVariableDeclarationStatement.cs
- ToolStripItem.cs
- KeyValueInternalCollection.cs
- MetadataFile.cs
- WinEventQueueItem.cs
- PageWrapper.cs
- RawStylusInput.cs
- TimelineGroup.cs
- DynamicContractTypeBuilder.cs
- EnvelopedPkcs7.cs
- StrokeIntersection.cs
- DetailsViewCommandEventArgs.cs
- TextPenaltyModule.cs
- LazyTextWriterCreator.cs
- AuthorizationPolicyTypeElementCollection.cs
- SystemParameters.cs
- OdbcError.cs
- QilXmlReader.cs
- EncodingInfo.cs
- RSAPKCS1SignatureDeformatter.cs
- StreamWriter.cs
- WorkflowControlClient.cs
- ToolStripTextBox.cs
- URIFormatException.cs
- XmlReflectionImporter.cs
- HttpCacheVary.cs
- EpmContentDeSerializerBase.cs
- HttpCapabilitiesBase.cs
- ConnectionStringsExpressionEditor.cs
- LexicalChunk.cs
- FixedTextView.cs
- StandardCommands.cs
- SourceChangedEventArgs.cs
- Paragraph.cs
- DiscoveryDocument.cs
- ScriptingProfileServiceSection.cs
- CancellationState.cs
- SchemaMapping.cs
- StreamMarshaler.cs
- ProgressiveCrcCalculatingStream.cs
- MethodToken.cs
- Geometry3D.cs
- KeyValuePairs.cs
- SmiRecordBuffer.cs
- FormsAuthenticationCredentials.cs
- HtmlMeta.cs
- FixedSOMTextRun.cs
- RegexTree.cs
- EventItfInfo.cs
- COM2ExtendedTypeConverter.cs
- RemotingAttributes.cs
- Content.cs
- TextMessageEncodingElement.cs
- MarkupWriter.cs
- Event.cs
- X509SecurityToken.cs
- SchemaTableColumn.cs
- MediaSystem.cs
- PolyBezierSegment.cs
- DataBoundControl.cs
- StandardTransformFactory.cs
- URIFormatException.cs
- COM2Enum.cs
- BamlRecordReader.cs
- LockCookie.cs
- OwnerDrawPropertyBag.cs
- StylusButton.cs
- HyperLinkStyle.cs
- DiscoveryClientBindingElement.cs
- NaturalLanguageHyphenator.cs
- KoreanLunisolarCalendar.cs
- SafeNativeMethodsCLR.cs
- CompilerGeneratedAttribute.cs
- ModuleBuilderData.cs