Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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 : [....] 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
- FormatControl.cs
- QuestionEventArgs.cs
- AssemblyNameProxy.cs
- PenThread.cs
- DataRecordInternal.cs
- EnumBuilder.cs
- ToolStripScrollButton.cs
- ToolStripContentPanel.cs
- XmlLanguage.cs
- LogEntryHeaderv1Deserializer.cs
- LogExtent.cs
- Transform.cs
- ListSourceHelper.cs
- DependencyPropertyKind.cs
- UInt32Storage.cs
- input.cs
- HttpPostServerProtocol.cs
- JsonXmlDataContract.cs
- ColumnMap.cs
- SqlCacheDependencyDatabaseCollection.cs
- StringValidator.cs
- ToolStripOverflow.cs
- RtfToXamlLexer.cs
- HandlerElement.cs
- ImageListStreamer.cs
- CreateUserWizard.cs
- ProcessModelInfo.cs
- CopyAction.cs
- GeneralTransform3DTo2DTo3D.cs
- AppDomainCompilerProxy.cs
- SoapExtensionReflector.cs
- ImportCatalogPart.cs
- HttpStreamMessageEncoderFactory.cs
- EventHandlerList.cs
- StringExpressionSet.cs
- Package.cs
- CompModSwitches.cs
- ProfileManager.cs
- MasterPage.cs
- SystemParameters.cs
- ElementAction.cs
- OleDbSchemaGuid.cs
- log.cs
- BaseTreeIterator.cs
- TemplateControlParser.cs
- TypeUtils.cs
- ExtensionFile.cs
- MgmtConfigurationRecord.cs
- DataGridView.cs
- TraceLevelHelper.cs
- DownloadProgressEventArgs.cs
- TextOptions.cs
- MissingSatelliteAssemblyException.cs
- Win32PrintDialog.cs
- XmlTypeAttribute.cs
- TemplateControlParser.cs
- ScriptResourceInfo.cs
- Control.cs
- OverflowException.cs
- UserPreferenceChangingEventArgs.cs
- XmlTypeMapping.cs
- DataBindingCollection.cs
- SqlDataReaderSmi.cs
- ByteAnimationUsingKeyFrames.cs
- SubpageParagraph.cs
- TaskSchedulerException.cs
- FormParameter.cs
- DataGridViewCheckBoxCell.cs
- VBCodeProvider.cs
- DirectoryNotFoundException.cs
- entityreference_tresulttype.cs
- COM2PropertyDescriptor.cs
- StringToken.cs
- ImageIndexConverter.cs
- FixedTextPointer.cs
- xmlglyphRunInfo.cs
- X509SecurityTokenAuthenticator.cs
- _NegoState.cs
- MimeTypeMapper.cs
- TagElement.cs
- RuntimeArgumentHandle.cs
- PriorityQueue.cs
- SecurityBindingElementImporter.cs
- Region.cs
- x509utils.cs
- OutputCacheSection.cs
- ManagementScope.cs
- DataContractSerializerElement.cs
- DelegatedStream.cs
- DataGridViewCellStyleChangedEventArgs.cs
- EdmSchemaError.cs
- CompModHelpers.cs
- SourceInterpreter.cs
- PermissionSetTriple.cs
- Label.cs
- RuleInfoComparer.cs
- SimpleColumnProvider.cs
- ColorTransform.cs
- JsonByteArrayDataContract.cs
- CodeTypeDeclarationCollection.cs