Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Automation / MultipleViewProviderWrapper.cs / 1305600 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlTopReducer.cs
- Function.cs
- File.cs
- MappingMetadataHelper.cs
- DataObjectAttribute.cs
- IncrementalHitTester.cs
- ProfessionalColorTable.cs
- PositiveTimeSpanValidatorAttribute.cs
- ApplicationException.cs
- ThreadStateException.cs
- PathHelper.cs
- TextServicesLoader.cs
- EventLogRecord.cs
- EdmType.cs
- ProfilePropertyMetadata.cs
- CommandManager.cs
- Validator.cs
- SQLGuid.cs
- ConfigXmlComment.cs
- Activator.cs
- HijriCalendar.cs
- DBConnectionString.cs
- CrossSiteScriptingValidation.cs
- QilTypeChecker.cs
- WorkerProcess.cs
- BaseDataListActionList.cs
- HttpContext.cs
- PropertyKey.cs
- PolyLineSegment.cs
- TypeValidationEventArgs.cs
- TablePattern.cs
- XmlEncodedRawTextWriter.cs
- SourceLineInfo.cs
- GridViewColumnCollection.cs
- WebSysDisplayNameAttribute.cs
- StrokeDescriptor.cs
- SqlDataSourceSummaryPanel.cs
- PackageRelationshipSelector.cs
- SwitchExpression.cs
- ArrayList.cs
- WpfKnownMember.cs
- ObjectStorage.cs
- ToolStripGrip.cs
- ObjectManager.cs
- HtmlInputPassword.cs
- CodeMethodReturnStatement.cs
- FillBehavior.cs
- RegexParser.cs
- OrderPreservingSpoolingTask.cs
- BindingsCollection.cs
- ModifierKeysValueSerializer.cs
- HwndProxyElementProvider.cs
- _ListenerRequestStream.cs
- RangeValuePattern.cs
- PassportAuthentication.cs
- CookieProtection.cs
- DecimalAnimation.cs
- ExpressionBuilder.cs
- XmlDocumentType.cs
- StylusPoint.cs
- DataPagerCommandEventArgs.cs
- RepeaterItemCollection.cs
- PagerStyle.cs
- TextPointer.cs
- WsatServiceAddress.cs
- HtmlWindowCollection.cs
- ConnectionPointCookie.cs
- cookiecollection.cs
- ReferenceService.cs
- Sequence.cs
- ZoneButton.cs
- WebPartExportVerb.cs
- MachineKeySection.cs
- WebPartTransformerAttribute.cs
- FixedNode.cs
- SchemaInfo.cs
- SlipBehavior.cs
- GPPOINTF.cs
- DataGridCommandEventArgs.cs
- CoreSwitches.cs
- DataGridViewRowConverter.cs
- pingexception.cs
- MethodBody.cs
- QualificationDataAttribute.cs
- RuntimeCompatibilityAttribute.cs
- WebHttpBindingCollectionElement.cs
- KeySplineConverter.cs
- AdapterDictionary.cs
- CodeDOMUtility.cs
- smtppermission.cs
- RankException.cs
- OptimizedTemplateContent.cs
- ArithmeticException.cs
- ToolStripCustomTypeDescriptor.cs
- SystemIPv4InterfaceProperties.cs
- SynchronizedPool.cs
- RequestCacheValidator.cs
- XmlUTF8TextWriter.cs
- pingexception.cs
- ThreadAbortException.cs