Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Automation / DockProviderWrapper.cs / 1305600 / DockProviderWrapper.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Dock 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 DockProviderWrapper: MarshalByRefObject, IDockProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private DockProviderWrapper( AutomationPeer peer, IDockProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface IDockProvider // //----------------------------------------------------- #region Interface IDockProvider public void SetDockPosition(DockPosition dockPosition) { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( SetDockPosition ), dockPosition ); } public DockPosition DockPosition { get { return (DockPosition)ElementUtil.Invoke(_peer, new DispatcherOperationCallback( GetDockPosition ), null); } } #endregion Interface IDockProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new DockProviderWrapper( peer, (IDockProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object SetDockPosition( object arg ) { _iface.SetDockPosition( (DockPosition) arg ); return null; } private object GetDockPosition( object unused ) { return _iface.DockPosition; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private IDockProvider _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
- DataServiceProviderMethods.cs
- PathBox.cs
- HtmlInputHidden.cs
- ToolboxComponentsCreatedEventArgs.cs
- SetterBase.cs
- FocusManager.cs
- String.cs
- HeaderPanel.cs
- cookieexception.cs
- TextServicesLoader.cs
- CodeCompileUnit.cs
- GroupItemAutomationPeer.cs
- AssemblyInfo.cs
- CharAnimationBase.cs
- LinkLabelLinkClickedEvent.cs
- Bidi.cs
- WindowsGraphicsWrapper.cs
- Speller.cs
- ConfigXmlCDataSection.cs
- CodeDesigner.cs
- UnitySerializationHolder.cs
- SQLInt64Storage.cs
- ResourceFallbackManager.cs
- PeerCollaboration.cs
- SystemParameters.cs
- PartManifestEntry.cs
- AgileSafeNativeMemoryHandle.cs
- SpecialFolderEnumConverter.cs
- GridSplitter.cs
- IPeerNeighbor.cs
- UserPreferenceChangedEventArgs.cs
- ListViewInsertedEventArgs.cs
- ApplicationContext.cs
- KeyValuePair.cs
- NumberFormatter.cs
- XomlDesignerLoader.cs
- ReliableSessionElement.cs
- WebPartEventArgs.cs
- SchemaLookupTable.cs
- DataKeyCollection.cs
- MetadataArtifactLoaderCompositeResource.cs
- CompilationAssemblyInstallComponent.cs
- ImageField.cs
- CommandBindingCollection.cs
- httpapplicationstate.cs
- StringUtil.cs
- PassportAuthenticationModule.cs
- SynchronizationLockException.cs
- DocumentsTrace.cs
- ResourcePermissionBase.cs
- PropertyTab.cs
- SmiMetaDataProperty.cs
- InputScopeManager.cs
- CancelEventArgs.cs
- StrokeCollection.cs
- FreezableDefaultValueFactory.cs
- InternalPolicyElement.cs
- XmlNamespaceMappingCollection.cs
- TreeNodeCollection.cs
- TextSchema.cs
- NullableConverter.cs
- InternalResources.cs
- PasswordBox.cs
- RuleProcessor.cs
- CapabilitiesPattern.cs
- PeerMaintainer.cs
- CommonObjectSecurity.cs
- KoreanCalendar.cs
- ViewBox.cs
- TextParaClient.cs
- ObjectMemberMapping.cs
- EastAsianLunisolarCalendar.cs
- CertificateManager.cs
- PropertyGrid.cs
- SchemaAttDef.cs
- ProjectionCamera.cs
- CrossContextChannel.cs
- CodeTypeParameterCollection.cs
- SecurityHeaderElementInferenceEngine.cs
- ValueUnavailableException.cs
- FileChangesMonitor.cs
- StreamAsIStream.cs
- ProtocolImporter.cs
- HandlerFactoryCache.cs
- DataGridPagingPage.cs
- ProtocolsSection.cs
- InteropAutomationProvider.cs
- ColorTransform.cs
- ProjectedWrapper.cs
- SafeRightsManagementHandle.cs
- TextBlock.cs
- CompilerCollection.cs
- DataGridViewAccessibleObject.cs
- NativeWrapper.cs
- X509RawDataKeyIdentifierClause.cs
- ContractSearchPattern.cs
- FormatConvertedBitmap.cs
- ClipboardProcessor.cs
- CalloutQueueItem.cs
- TableLayoutStyle.cs