Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Automation / WindowProviderWrapper.cs / 1305600 / WindowProviderWrapper.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Window pattern provider wrapper for WCP // // History: // 07/21/2003 : BrendanM Ported to WCP // //--------------------------------------------------------------------------- using System; using System.Windows.Threading; using System.Windows.Media; using System.Windows.Automation; using System.Windows.Automation.Provider; using System.Windows.Automation.Peers; namespace MS.Internal.Automation { // Automation/WCP Wrapper class: Implements that UIAutomation I...Provider // interface, and calls through to a WCP AutomationPeer which implements the corresponding // I...Provider inteface. Marshalls the call from the RPC thread onto the // target AutomationPeer's context. // // Class has two major parts to it: // * Implementation of the I...Provider, which uses Dispatcher.Invoke // to call a private method (lives in second half of the class) via a delegate, // if necessary, packages any params into an object param. Return type of Invoke // must be cast from object to appropriate type. // * private methods - one for each interface entry point - which get called back // on the right context. These call through to the peer that's actually // implenting the I...Provider version of the interface. internal class WindowProviderWrapper: MarshalByRefObject, IWindowProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private WindowProviderWrapper( AutomationPeer peer, IWindowProvider iface) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface IWindowProvider // //----------------------------------------------------- #region Interface IWindowProvider public void SetVisualState( WindowVisualState state ) { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( SetVisualState ), state ); } public void Close() { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Close ), null ); } public bool WaitForInputIdle( int milliseconds ) { return (bool)ElementUtil.Invoke( _peer, new DispatcherOperationCallback( WaitForInputIdle ), milliseconds ); } public bool Maximizable { get { return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetMaximizable ), null ); } } public bool Minimizable { get { return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetMinimizable ), null ); } } public bool IsModal { get { return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetIsModal ), null ); } } public WindowVisualState VisualState { get { return (WindowVisualState) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetVisualState ), null ); } } public WindowInteractionState InteractionState { get { return (WindowInteractionState) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetInteractionState ), null ); } } public bool IsTopmost { get { return (bool) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetIsTopmost ), null ); } } #endregion Interface IWindowProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface) { return new WindowProviderWrapper( peer, (IWindowProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object SetVisualState( object arg ) { _iface.SetVisualState( (WindowVisualState) arg ); return null; } private object WaitForInputIdle( object arg ) { return _iface.WaitForInputIdle( (int) arg ); } private object Close( object unused ) { _iface.Close(); return null; } private object GetMaximizable( object unused ) { return _iface.Maximizable; } private object GetMinimizable( object unused ) { return _iface.Minimizable; } private object GetIsModal( object unused ) { return _iface.IsModal; } private object GetVisualState( object unused ) { return _iface.VisualState; } private object GetInteractionState( object unused ) { return _iface.InteractionState; } private object GetIsTopmost( object unused ) { return _iface.IsTopmost; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private IWindowProvider _iface; #endregion Private Fields } } // 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
- TimeZone.cs
- XDRSchema.cs
- control.ime.cs
- ReadOnlyTernaryTree.cs
- DatagridviewDisplayedBandsData.cs
- ButtonChrome.cs
- ViewStateModeByIdAttribute.cs
- SHA1CryptoServiceProvider.cs
- XhtmlBasicTextViewAdapter.cs
- __ConsoleStream.cs
- FixedElement.cs
- MouseGestureValueSerializer.cs
- AddingNewEventArgs.cs
- ClientSponsor.cs
- DataBindingList.cs
- TextMetrics.cs
- DSACryptoServiceProvider.cs
- ArgumentOutOfRangeException.cs
- CompilerState.cs
- SqlBulkCopyColumnMapping.cs
- CodeStatement.cs
- EdmProviderManifest.cs
- SecurityPermission.cs
- XmlAttributeProperties.cs
- ServiceAuthorizationManager.cs
- RedBlackList.cs
- DbConnectionInternal.cs
- KeyFrames.cs
- PropertyRef.cs
- DynamicFilter.cs
- SystemPens.cs
- DigestTraceRecordHelper.cs
- DataProtection.cs
- IdentitySection.cs
- ClassHandlersStore.cs
- HotCommands.cs
- PropertyTabAttribute.cs
- TraceRecord.cs
- login.cs
- DataServiceRequest.cs
- mediaeventargs.cs
- ConnectionManagementElement.cs
- MsmqInputChannelListener.cs
- InkPresenterAutomationPeer.cs
- SettingsPropertyIsReadOnlyException.cs
- ScopelessEnumAttribute.cs
- ListBoxAutomationPeer.cs
- Pointer.cs
- ArraySegment.cs
- VirtualDirectoryMapping.cs
- DataGridViewDataConnection.cs
- SqlDataSourceCommandEventArgs.cs
- QueueException.cs
- LocalValueEnumerator.cs
- LocationUpdates.cs
- ConfigUtil.cs
- PeerResolver.cs
- PropertyValueUIItem.cs
- Rectangle.cs
- Vector3DIndependentAnimationStorage.cs
- XmlSchemaException.cs
- NetCodeGroup.cs
- QueuePathEditor.cs
- ButtonBaseAdapter.cs
- ProcessHostConfigUtils.cs
- SkinBuilder.cs
- SpecialTypeDataContract.cs
- WebPartConnectionsCloseVerb.cs
- XmlSerializableServices.cs
- PropertyPathWorker.cs
- RIPEMD160.cs
- PrimitiveOperationFormatter.cs
- DateTimeConstantAttribute.cs
- AbstractSvcMapFileLoader.cs
- ApplicationInterop.cs
- RectangleGeometry.cs
- NavigationWindow.cs
- SimpleHandlerBuildProvider.cs
- Task.cs
- CustomCredentialPolicy.cs
- ConstraintCollection.cs
- SharedPersonalizationStateInfo.cs
- ModelUIElement3D.cs
- HtmlTitle.cs
- PageHandlerFactory.cs
- PropertyDescriptors.cs
- ProfileGroupSettings.cs
- RayMeshGeometry3DHitTestResult.cs
- SmtpMail.cs
- RadioButtonPopupAdapter.cs
- CodeObject.cs
- CollectionContainer.cs
- CatalogZoneBase.cs
- SqlDataSourceStatusEventArgs.cs
- BitmapImage.cs
- GroupByQueryOperator.cs
- MouseEvent.cs
- Utilities.cs
- SelectionItemPatternIdentifiers.cs
- XhtmlConformanceSection.cs