Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / MS / Internal / Automation / InvokeProviderWrapper.cs / 1 / InvokeProviderWrapper.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Invoke 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 InvokeProviderWrapper: MarshalByRefObject, IInvokeProvider { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors private InvokeProviderWrapper( AutomationPeer peer, IInvokeProvider iface ) { _peer = peer; _iface = iface; } #endregion Constructors //------------------------------------------------------ // // Interface IInvokeProvider // //----------------------------------------------------- #region Interface IInvokeProvider public void Invoke() { ElementUtil.Invoke( _peer, new DispatcherOperationCallback( Invoke ), null ); } #endregion Interface IInvokeProvider //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ #region Internal Methods internal static object Wrap( AutomationPeer peer, object iface ) { return new InvokeProviderWrapper( peer, (IInvokeProvider) iface ); } #endregion Internal Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods private object Invoke( object unused ) { _iface.Invoke(); return null; } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private AutomationPeer _peer; private IInvokeProvider _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
- DataSetFieldSchema.cs
- SettingsSection.cs
- Soap.cs
- HashMembershipCondition.cs
- Int32Collection.cs
- GACMembershipCondition.cs
- ActivityValidator.cs
- sitestring.cs
- WorkerRequest.cs
- DataProtection.cs
- AlignmentYValidation.cs
- Vars.cs
- DecoderFallback.cs
- IdentifierService.cs
- IisTraceWebEventProvider.cs
- PersonalizationStateInfoCollection.cs
- _TLSstream.cs
- DeploymentSection.cs
- EntityRecordInfo.cs
- XamlStream.cs
- DocumentReference.cs
- Assembly.cs
- Base64Encoder.cs
- XmlEntity.cs
- DrawToolTipEventArgs.cs
- HwndHost.cs
- ComponentEditorForm.cs
- Vector3dCollection.cs
- FontInfo.cs
- Container.cs
- NonVisualControlAttribute.cs
- SplitterCancelEvent.cs
- Latin1Encoding.cs
- XPathQilFactory.cs
- GatewayDefinition.cs
- FileUtil.cs
- EntitySqlQueryBuilder.cs
- ConsumerConnectionPointCollection.cs
- Renderer.cs
- SpecialNameAttribute.cs
- ToolStripRenderer.cs
- Margins.cs
- RectAnimationUsingKeyFrames.cs
- SafeLibraryHandle.cs
- CodePropertyReferenceExpression.cs
- WebBrowserPermission.cs
- ExpandCollapseProviderWrapper.cs
- EnlistmentState.cs
- SqlConnectionHelper.cs
- BookmarkNameHelper.cs
- PointLight.cs
- NotifyIcon.cs
- fixedPageContentExtractor.cs
- FontConverter.cs
- FilePrompt.cs
- LeftCellWrapper.cs
- DataGridViewCellParsingEventArgs.cs
- DesignerVerb.cs
- VBIdentifierName.cs
- XmlHierarchyData.cs
- InkCanvas.cs
- Marshal.cs
- CodeTypeDeclarationCollection.cs
- Color.cs
- DataGridBoolColumn.cs
- ProfilePropertyNameValidator.cs
- TextDecoration.cs
- DownloadProgressEventArgs.cs
- SqlNode.cs
- FileClassifier.cs
- FlowDocumentReader.cs
- WebCategoryAttribute.cs
- CircleHotSpot.cs
- printdlgexmarshaler.cs
- SeverityFilter.cs
- VirtualPathData.cs
- DataGridCommandEventArgs.cs
- StrokeCollectionDefaultValueFactory.cs
- ColumnTypeConverter.cs
- ProfileGroupSettings.cs
- DelegateArgument.cs
- XmlRawWriter.cs
- CommandEventArgs.cs
- DataBoundControlDesigner.cs
- SecurityManager.cs
- CatalogUtil.cs
- BamlResourceSerializer.cs
- CatalogZone.cs
- OperandQuery.cs
- ZipIOCentralDirectoryFileHeader.cs
- ClientBuildManager.cs
- ButtonChrome.cs
- OletxEnlistment.cs
- HwndSource.cs
- IdentityElement.cs
- TdsEnums.cs
- Icon.cs
- EntityConnectionStringBuilderItem.cs
- XComponentModel.cs
- ImageAttributes.cs