Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / BeginGetFileNameFromUserRequest.cs / 1 / BeginGetFileNameFromUserRequest.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.IO; using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace; // // Summary // Processes beginning of asynchronous get file name from user request. // internal class BeginGetFileNameFromUserRequest : UIAgentAsyncBeginRequest { bool m_getContent; // Stores whether file contents are to be returned. string m_arguments; // Stores arguments passed to agent on user desktop. // // Summary // Constructs request. // // Arguments // rpcHandle - Specifies the RPC context handle. // inArgs - Specifies the stream to hold the input arguments. // outArgs - Specifies the stream to hold the output arguments. // parent - Specifies the parent UI request. // public BeginGetFileNameFromUserRequest( IntPtr rpcHandle, Stream inArgs, Stream outArgs, ClientUIRequest parent ) : base( rpcHandle, inArgs, outArgs, parent ) { } // // Summary // Reads input arguments from stream. // // Arguments // reader - Specifies a binary reader. // protected override void OnMarshalAsyncInArgs( BinaryReader reader ) { m_getContent = reader.ReadBoolean(); m_arguments = Utility.DeserializeString( reader ); } // // Summary // Gets file from user. // // Remarks // This method is called from a thread pool thread. // // Arguments // asyncParams - Specifies asynchronous parameters. // protected override object AsyncExecute( AsyncParams asyncParams ) { uint error = 0; string fileName = String.Empty; GetFileNameResult result = new GetFileNameResult(); // // Start agent on user desktop to get file from user. // using( SystemIdentity lsa = new SystemIdentity( true ) ) { error = NativeMcppMethods.CreateAndWaitForFileOpenDialogWrapper( m_arguments, RequestorIdentity, ParentRequest.CallerPid, ref fileName ); } if( 0 == error ) { try { // // Store file name. // result.FileName = fileName; // // If contents were requested and user choose a file then read and store contents. // if( m_getContent && !String.IsNullOrEmpty( fileName ) ) { FileInfo f = new FileInfo( fileName ); using( FileStream file = File.OpenRead( fileName ) ) { BinaryReader reader = new InfoCardBinaryReader( file ); result.FileContent = reader.ReadBytes( (int) f.Length ); } } } catch( Exception e ) { if( IDT.IsFatal( e ) ) { throw; } throw IDT.ThrowHelperError( new FileAccessException( SR.GetString( SR.ServiceInaccessibleFile ), e ) ); } } else { IDT.TraceDebug( "ICARDACCESS:Failed to create process with error {0}", error ); } return result; } // // Summary // The ability to cancel this request is not needed as the user desktop is active and the agent on this desktop // may be closed to end this request without choosing a file. // protected override void AsyncCancel() { ; } } } // 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
- EntityTypeEmitter.cs
- PackagingUtilities.cs
- DocumentSequenceHighlightLayer.cs
- HwndTarget.cs
- Byte.cs
- NamespaceListProperty.cs
- RuntimeHelpers.cs
- ConnectionStringsExpressionBuilder.cs
- DataControlCommands.cs
- TargetConverter.cs
- QilInvokeLateBound.cs
- VariableDesigner.xaml.cs
- InvalidTimeZoneException.cs
- ClockController.cs
- NetTcpSectionData.cs
- TraceEventCache.cs
- GridViewRowCollection.cs
- Pair.cs
- CodeDomConfigurationHandler.cs
- ConstructorBuilder.cs
- EmptyQuery.cs
- PopOutPanel.cs
- EditorPart.cs
- TraceUtility.cs
- BoundsDrawingContextWalker.cs
- PassportAuthentication.cs
- LinkLabelLinkClickedEvent.cs
- GridViewRowEventArgs.cs
- PageThemeBuildProvider.cs
- SqlMethodCallConverter.cs
- FileResponseElement.cs
- TextTreeTextNode.cs
- MethodBuilderInstantiation.cs
- COM2ExtendedBrowsingHandler.cs
- _DynamicWinsockMethods.cs
- HttpHandlerAction.cs
- MaterialGroup.cs
- NativeMethods.cs
- CategoryAttribute.cs
- PublishLicense.cs
- Size.cs
- TextSimpleMarkerProperties.cs
- GridViewDeletedEventArgs.cs
- WebSysDisplayNameAttribute.cs
- HostedElements.cs
- DBConnection.cs
- XmlHierarchicalDataSourceView.cs
- PopOutPanel.cs
- PropertySourceInfo.cs
- ProxyWebPartManager.cs
- StateRuntime.cs
- ParseChildrenAsPropertiesAttribute.cs
- LinkButton.cs
- IndexedWhereQueryOperator.cs
- EntityContainerEmitter.cs
- GPStream.cs
- ArcSegment.cs
- GiveFeedbackEvent.cs
- TransformGroup.cs
- RepeaterCommandEventArgs.cs
- DataGridPagingPage.cs
- SizeConverter.cs
- UrlPath.cs
- Span.cs
- WebBrowserBase.cs
- WorkflowControlClient.cs
- Int32CAMarshaler.cs
- Helpers.cs
- Quaternion.cs
- WorkflowItemsPresenter.cs
- ExpressionSelection.cs
- RbTree.cs
- EntityDesignerUtils.cs
- CriticalFinalizerObject.cs
- ContentDisposition.cs
- StringArrayConverter.cs
- XmlDigitalSignatureProcessor.cs
- _LoggingObject.cs
- WsdlBuildProvider.cs
- SystemBrushes.cs
- CookielessHelper.cs
- Geometry3D.cs
- XmlHelper.cs
- ProfileSettingsCollection.cs
- DirtyTextRange.cs
- NaturalLanguageHyphenator.cs
- RadioButtonStandardAdapter.cs
- xml.cs
- ListItemViewControl.cs
- IncrementalHitTester.cs
- SharedPersonalizationStateInfo.cs
- AssemblyAttributes.cs
- EntityPropertyMappingAttribute.cs
- EventLogReader.cs
- EventSinkActivity.cs
- BooleanFacetDescriptionElement.cs
- VisualProxy.cs
- SecurityPolicySection.cs
- ServiceXNameTypeConverter.cs
- MethodExpr.cs