Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / MS / Internal / Automation / DockProviderWrapper.cs / 1 / DockProviderWrapper.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Dock 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 DockProviderWrapper: MarshalByRefObject, IDockProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private DockProviderWrapper( AutomationPeer peer, IDockProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface IDockProvider // //----------------------------------------------------- #region Interface IDockProvider public void SetDockPosition(DockPosition dockPosition) { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( SetDockPosition ), dockPosition ); } public DockPosition DockPosition { get { return (DockPosition)ElementUtil.Invoke(_peer, new DispatcherOperationCallback( GetDockPosition ), null); } } #endregion Interface IDockProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new DockProviderWrapper( peer, (IDockProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object SetDockPosition( object arg ) { _iface.SetDockPosition( (DockPosition) arg ); return null; } private object GetDockPosition( object unused ) { return _iface.DockPosition; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private IDockProvider _iface; #endregion Private Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Dock 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 DockProviderWrapper: MarshalByRefObject, IDockProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private DockProviderWrapper( AutomationPeer peer, IDockProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface IDockProvider // //----------------------------------------------------- #region Interface IDockProvider public void SetDockPosition(DockPosition dockPosition) { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( SetDockPosition ), dockPosition ); } public DockPosition DockPosition { get { return (DockPosition)ElementUtil.Invoke(_peer, new DispatcherOperationCallback( GetDockPosition ), null); } } #endregion Interface IDockProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new DockProviderWrapper( peer, (IDockProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object SetDockPosition( object arg ) { _iface.SetDockPosition( (DockPosition) arg ); return null; } private object GetDockPosition( object unused ) { return _iface.DockPosition; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private IDockProvider _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
- IEnumerable.cs
- SpAudioStreamWrapper.cs
- OperationResponse.cs
- SmiEventSink.cs
- XmlProcessingInstruction.cs
- MouseActionConverter.cs
- _CookieModule.cs
- BaseDataBoundControlDesigner.cs
- GeometryModel3D.cs
- EntityClientCacheKey.cs
- ServiceBusyException.cs
- HttpContext.cs
- OperationParameterInfo.cs
- Enum.cs
- EditorPartChrome.cs
- RtfControls.cs
- dbenumerator.cs
- BroadcastEventHelper.cs
- TextEvent.cs
- HttpHandlerAction.cs
- Span.cs
- LinqDataSourceInsertEventArgs.cs
- AggregatePushdown.cs
- AutoCompleteStringCollection.cs
- CollectionType.cs
- MediaScriptCommandRoutedEventArgs.cs
- DataBindingValueUIHandler.cs
- QuaternionAnimationBase.cs
- MarkupWriter.cs
- FileUtil.cs
- ClrPerspective.cs
- TypeUtil.cs
- SystemUdpStatistics.cs
- FrameworkTextComposition.cs
- PointLight.cs
- MethodBuilder.cs
- AjaxFrameworkAssemblyAttribute.cs
- OpCodes.cs
- HelloOperation11AsyncResult.cs
- RemoveFromCollection.cs
- ToolStripPanelRow.cs
- FormattedText.cs
- SoapSchemaImporter.cs
- WebPartVerb.cs
- DescendantOverDescendantQuery.cs
- SourceFileInfo.cs
- BitArray.cs
- StrokeNode.cs
- WindowsToolbar.cs
- DataGridGeneralPage.cs
- ListControl.cs
- basenumberconverter.cs
- WaitForChangedResult.cs
- UnsafeNativeMethods.cs
- DesignTimeDataBinding.cs
- Transform3DGroup.cs
- StylusPlugInCollection.cs
- ValidationResults.cs
- Executor.cs
- PostBackTrigger.cs
- ConnectionInterfaceCollection.cs
- StyleCollection.cs
- EventLogger.cs
- CopyAction.cs
- DataRelationCollection.cs
- DeflateStream.cs
- SecurityElement.cs
- PenThreadWorker.cs
- ToolboxItemCollection.cs
- ListViewInsertionMark.cs
- ToolStripLabel.cs
- ServerReliableChannelBinder.cs
- PropertyValueChangedEvent.cs
- CodeVariableDeclarationStatement.cs
- _CookieModule.cs
- BrushConverter.cs
- Int32RectConverter.cs
- RegionInfo.cs
- sqlstateclientmanager.cs
- DrawingContextDrawingContextWalker.cs
- ServicesExceptionNotHandledEventArgs.cs
- XmlTextReader.cs
- AnimatedTypeHelpers.cs
- EventLogPermissionEntry.cs
- DesignerMetadata.cs
- HelpKeywordAttribute.cs
- ISAPIApplicationHost.cs
- NavigationPropertySingletonExpression.cs
- XPathScanner.cs
- ParseChildrenAsPropertiesAttribute.cs
- KeyMatchBuilder.cs
- SystemUdpStatistics.cs
- SymbolType.cs
- DecoderExceptionFallback.cs
- MenuEventArgs.cs
- Timeline.cs
- TemplateBindingExtensionConverter.cs
- Misc.cs
- MissingMemberException.cs
- KeyFrames.cs