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 / MultipleViewProviderWrapper.cs / 1 / MultipleViewProviderWrapper.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Multiple View 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 MultipleViewProviderWrapper: MarshalByRefObject, IMultipleViewProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private MultipleViewProviderWrapper( AutomationPeer peer, IMultipleViewProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface IMultipleViewProvider // //----------------------------------------------------- #region Interface IMultipleViewProvider public string GetViewName( int viewID ) { return (string) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetViewName ), viewID ); } public void SetCurrentView( int viewID ) { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( SetCurrentView ), viewID ); } public int CurrentView { get { return (int) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetCurrentView ), null ); } } public int [] GetSupportedViews() { return (int []) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetSupportedViews ), null ); } #endregion Interface IMultipleViewProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new MultipleViewProviderWrapper( peer, (IMultipleViewProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object GetViewName( object arg ) { return _iface.GetViewName( (int) arg ); } private object SetCurrentView( object arg ) { _iface.SetCurrentView( (int) arg ); return null; } private object GetCurrentView( object unused ) { return _iface.CurrentView; } private object GetSupportedViews( object unused ) { return _iface.GetSupportedViews(); } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private IMultipleViewProvider _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: Multiple View 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 MultipleViewProviderWrapper: MarshalByRefObject, IMultipleViewProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private MultipleViewProviderWrapper( AutomationPeer peer, IMultipleViewProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface IMultipleViewProvider // //----------------------------------------------------- #region Interface IMultipleViewProvider public string GetViewName( int viewID ) { return (string) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetViewName ), viewID ); } public void SetCurrentView( int viewID ) { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( SetCurrentView ), viewID ); } public int CurrentView { get { return (int) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetCurrentView ), null ); } } public int [] GetSupportedViews() { return (int []) ElementUtil.Invoke( _peer, new DispatcherOperationCallback( GetSupportedViews ), null ); } #endregion Interface IMultipleViewProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new MultipleViewProviderWrapper( peer, (IMultipleViewProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object GetViewName( object arg ) { return _iface.GetViewName( (int) arg ); } private object SetCurrentView( object arg ) { _iface.SetCurrentView( (int) arg ); return null; } private object GetCurrentView( object unused ) { return _iface.CurrentView; } private object GetSupportedViews( object unused ) { return _iface.GetSupportedViews(); } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private IMultipleViewProvider _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
- ResetableIterator.cs
- AssociationTypeEmitter.cs
- CacheAxisQuery.cs
- ZipIOExtraFieldElement.cs
- UserPersonalizationStateInfo.cs
- PageThemeParser.cs
- HyperLinkField.cs
- CreateUserErrorEventArgs.cs
- ApplicationDirectoryMembershipCondition.cs
- ThrowHelper.cs
- HttpConfigurationSystem.cs
- SqlDataSource.cs
- CodeNamespaceCollection.cs
- HMAC.cs
- ReadOnlyCollectionBase.cs
- SimpleApplicationHost.cs
- _AcceptOverlappedAsyncResult.cs
- JavascriptCallbackMessageInspector.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- ContourSegment.cs
- XXXInfos.cs
- RequestNavigateEventArgs.cs
- HttpModuleCollection.cs
- TextWriterTraceListener.cs
- RegistryConfigurationProvider.cs
- RegistryConfigurationProvider.cs
- PageContent.cs
- DiagnosticTraceSource.cs
- Stacktrace.cs
- FlowThrottle.cs
- EventHandlerService.cs
- VerificationException.cs
- Point4D.cs
- PeerResolver.cs
- EdmComplexTypeAttribute.cs
- FileUtil.cs
- ContextConfiguration.cs
- RadioButton.cs
- SqlNamer.cs
- IndexedEnumerable.cs
- ImageList.cs
- GenerateTemporaryTargetAssembly.cs
- HttpModulesSection.cs
- XmlAttributeOverrides.cs
- X509AsymmetricSecurityKey.cs
- IndentTextWriter.cs
- GridViewColumnHeader.cs
- CodeGroup.cs
- InputReferenceExpression.cs
- XmlCharCheckingWriter.cs
- SoapFault.cs
- EntityKey.cs
- CompiledScopeCriteria.cs
- DatatypeImplementation.cs
- ListBox.cs
- BitmapEncoder.cs
- HtmlTableRow.cs
- SchemaElementDecl.cs
- EventLogEntryCollection.cs
- Rule.cs
- SrgsGrammarCompiler.cs
- oledbmetadatacollectionnames.cs
- MethodImplAttribute.cs
- DataTransferEventArgs.cs
- LinkButton.cs
- CapiSymmetricAlgorithm.cs
- SqlTriggerContext.cs
- PropertyGroupDescription.cs
- Vector3D.cs
- SharedPerformanceCounter.cs
- LeaseManager.cs
- WebPartCancelEventArgs.cs
- SchemaImporter.cs
- SqlTopReducer.cs
- HuffCodec.cs
- PolyBezierSegment.cs
- ScriptingSectionGroup.cs
- PasswordValidationException.cs
- CollectionViewGroupRoot.cs
- GlyphingCache.cs
- Style.cs
- FlowDocument.cs
- ParserStreamGeometryContext.cs
- AttributeCollection.cs
- DbSourceParameterCollection.cs
- SecurityPolicySection.cs
- ServiceManagerHandle.cs
- baseaxisquery.cs
- StylusSystemGestureEventArgs.cs
- FatalException.cs
- UIAgentAsyncParams.cs
- DbConnectionPool.cs
- ToolStripTextBox.cs
- BitmapEffectGeneralTransform.cs
- XPathDocument.cs
- StrokeCollectionConverter.cs
- SQLDouble.cs
- XmlMapping.cs
- ResourceDescriptionAttribute.cs
- RouteParametersHelper.cs