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
- _ListenerAsyncResult.cs
- DesignerSerializationVisibilityAttribute.cs
- TreeViewItemAutomationPeer.cs
- TransformValueSerializer.cs
- TaiwanLunisolarCalendar.cs
- EventLogHandle.cs
- StreamReader.cs
- CheckBoxBaseAdapter.cs
- SqlClientWrapperSmiStream.cs
- FloatMinMaxAggregationOperator.cs
- DataGridViewRowCollection.cs
- CookieProtection.cs
- HtmlElementEventArgs.cs
- ToolStripItemRenderEventArgs.cs
- _SslStream.cs
- SoapClientProtocol.cs
- ObjectParameterCollection.cs
- MappingItemCollection.cs
- Int32Animation.cs
- ReferencedType.cs
- TriState.cs
- TextElementEnumerator.cs
- CatalogPart.cs
- Dictionary.cs
- DataControlImageButton.cs
- FormatVersion.cs
- EventWaitHandleSecurity.cs
- SafePEFileHandle.cs
- ImageAnimator.cs
- PropertyManager.cs
- DataGridViewColumnHeaderCell.cs
- DateTimeValueSerializer.cs
- SystemMulticastIPAddressInformation.cs
- StyleSelector.cs
- PerformanceCounterCategory.cs
- DataTemplateSelector.cs
- ManagedWndProcTracker.cs
- ZoneMembershipCondition.cs
- SqlInternalConnection.cs
- parserscommon.cs
- HtmlTernaryTree.cs
- DoubleLinkList.cs
- Transform3D.cs
- BooleanFunctions.cs
- DataIdProcessor.cs
- ListParaClient.cs
- StateItem.cs
- CompilationSection.cs
- AsmxEndpointPickerExtension.cs
- HtmlShimManager.cs
- CryptoStream.cs
- BindToObject.cs
- ClientScriptManager.cs
- ErrorWrapper.cs
- ECDsa.cs
- Helper.cs
- DataFormats.cs
- ScrollChrome.cs
- SelectionItemPattern.cs
- _AutoWebProxyScriptWrapper.cs
- ReadingWritingEntityEventArgs.cs
- SwitchAttribute.cs
- SizeAnimationUsingKeyFrames.cs
- SafeRightsManagementQueryHandle.cs
- PropVariant.cs
- SqlStream.cs
- CompilationPass2TaskInternal.cs
- SoapFault.cs
- EntityDataSourceUtil.cs
- WizardStepCollectionEditor.cs
- PopupControlService.cs
- XmlLoader.cs
- SystemIcmpV6Statistics.cs
- DetailsViewDeleteEventArgs.cs
- LocalFileSettingsProvider.cs
- Listbox.cs
- BuildProvider.cs
- BuildManagerHost.cs
- sqlpipe.cs
- GroupBoxDesigner.cs
- DataGridRow.cs
- RuntimeResourceSet.cs
- TraceUtility.cs
- SharedUtils.cs
- HttpResponse.cs
- SynthesizerStateChangedEventArgs.cs
- httpstaticobjectscollection.cs
- DoubleStorage.cs
- ListComponentEditor.cs
- Timer.cs
- ZipIOLocalFileHeader.cs
- WaitHandle.cs
- LabelAutomationPeer.cs
- TemplateContainer.cs
- HitTestParameters3D.cs
- PreloadedPackages.cs
- EventSinkHelperWriter.cs
- ComPersistableTypeElementCollection.cs
- OleDbEnumerator.cs
- DbFunctionCommandTree.cs