Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / MS / Internal / Automation / ExpandCollapseProviderWrapper.cs / 1 / ExpandCollapseProviderWrapper.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Expand Collapse 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 ExpandCollapseProviderWrapper: MarshalByRefObject, IExpandCollapseProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private ExpandCollapseProviderWrapper( AutomationPeer peer, IExpandCollapseProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface IExpandCollapseProvider // //----------------------------------------------------- #region Interface IExpandCollapseProvider public void Expand() { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Expand ), null ); } public void Collapse() { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Collapse ), null ); } public ExpandCollapseState ExpandCollapseState { get { return (ExpandCollapseState) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetExpandCollapseState ), null ); } } #endregion Interface IExpandCollapseProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new ExpandCollapseProviderWrapper( peer, (IExpandCollapseProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object Expand( object unused ) { _iface.Expand(); return null; } private object Collapse( object unused ) { _iface.Collapse(); return null; } private object GetExpandCollapseState( object unused ) { return _iface.ExpandCollapseState; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private IExpandCollapseProvider _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: Expand Collapse 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 ExpandCollapseProviderWrapper: MarshalByRefObject, IExpandCollapseProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private ExpandCollapseProviderWrapper( AutomationPeer peer, IExpandCollapseProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface IExpandCollapseProvider // //----------------------------------------------------- #region Interface IExpandCollapseProvider public void Expand() { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Expand ), null ); } public void Collapse() { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Collapse ), null ); } public ExpandCollapseState ExpandCollapseState { get { return (ExpandCollapseState) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetExpandCollapseState ), null ); } } #endregion Interface IExpandCollapseProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new ExpandCollapseProviderWrapper( peer, (IExpandCollapseProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object Expand( object unused ) { _iface.Expand(); return null; } private object Collapse( object unused ) { _iface.Collapse(); return null; } private object GetExpandCollapseState( object unused ) { return _iface.ExpandCollapseState; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private IExpandCollapseProvider _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
- HotCommands.cs
- HMACSHA384.cs
- AspCompat.cs
- XmlSchemaSimpleTypeList.cs
- ScriptControl.cs
- ListView.cs
- IPipelineRuntime.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- ServiceDescriptions.cs
- LockCookie.cs
- WmfPlaceableFileHeader.cs
- PathStreamGeometryContext.cs
- ToolStripRenderEventArgs.cs
- SoapTransportImporter.cs
- ContainerUIElement3D.cs
- QilTypeChecker.cs
- DecoderFallback.cs
- ContentDisposition.cs
- ApplicationServicesHostFactory.cs
- FormClosingEvent.cs
- DataGridColumnCollectionEditor.cs
- TextAnchor.cs
- AnimationStorage.cs
- ColumnResizeAdorner.cs
- InputLanguageManager.cs
- FastEncoder.cs
- SecondaryIndexDefinition.cs
- SoapExtension.cs
- XmlDownloadManager.cs
- RtType.cs
- NonBatchDirectoryCompiler.cs
- JsonFormatReaderGenerator.cs
- RegexNode.cs
- HtmlContainerControl.cs
- StorageEntityContainerMapping.cs
- LinkedResourceCollection.cs
- ModelItemImpl.cs
- _UncName.cs
- DataException.cs
- ListControl.cs
- CategoryAttribute.cs
- PointUtil.cs
- UIElementCollection.cs
- DataServiceProcessingPipeline.cs
- AvTrace.cs
- DataView.cs
- StrokeCollectionConverter.cs
- UndoManager.cs
- TextSelectionHighlightLayer.cs
- AmbientLight.cs
- AccessibleObject.cs
- ImpersonateTokenRef.cs
- AssemblyHelper.cs
- ContextDataSource.cs
- WebHttpEndpoint.cs
- CodeSnippetStatement.cs
- CopyCodeAction.cs
- ButtonPopupAdapter.cs
- Row.cs
- EdmFunction.cs
- _PooledStream.cs
- WorkflowFormatterBehavior.cs
- VisualStyleRenderer.cs
- StyleXamlParser.cs
- bidPrivateBase.cs
- BitmapEffect.cs
- CipherData.cs
- ConfigXmlWhitespace.cs
- DesignBinding.cs
- Parser.cs
- ProxyGenerationError.cs
- MouseButtonEventArgs.cs
- BindingValueChangedEventArgs.cs
- PeerCollaborationPermission.cs
- PreservationFileWriter.cs
- HttpRawResponse.cs
- Rules.cs
- BindingsCollection.cs
- ToolStripStatusLabel.cs
- SynchronizationLockException.cs
- HttpModulesSection.cs
- CustomCredentialPolicy.cs
- SapiRecoContext.cs
- HiddenField.cs
- EastAsianLunisolarCalendar.cs
- InternalBufferOverflowException.cs
- ProjectionPruner.cs
- DataObjectAttribute.cs
- Property.cs
- StringBlob.cs
- PropertyManager.cs
- RemoteArgument.cs
- ConfigXmlText.cs
- XmlTextEncoder.cs
- DbBuffer.cs
- ChildChangedEventArgs.cs
- SqlTriggerContext.cs
- OperatingSystem.cs
- SiteMapSection.cs
- DoubleAnimationUsingKeyFrames.cs