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
- HtmlEmptyTagControlBuilder.cs
- Sql8ConformanceChecker.cs
- BinaryCommonClasses.cs
- BitmapEffectDrawingContextState.cs
- Preprocessor.cs
- RMEnrollmentPage1.cs
- WebReference.cs
- MdImport.cs
- EntityDataSourceMemberPath.cs
- ValidatedControlConverter.cs
- XPathSelfQuery.cs
- RoleBoolean.cs
- RequiredFieldValidator.cs
- ProviderException.cs
- Point3DConverter.cs
- ProcessHostMapPath.cs
- DecoderExceptionFallback.cs
- RelationshipSet.cs
- SchemaNotation.cs
- BufferBuilder.cs
- CompressionTransform.cs
- ApplicationManager.cs
- ProtocolsConfigurationHandler.cs
- XmlBinaryReader.cs
- SafeSecurityHandles.cs
- ASCIIEncoding.cs
- SelfIssuedAuthProofToken.cs
- HttpServerVarsCollection.cs
- ToolStripComboBox.cs
- MemberHolder.cs
- StringConverter.cs
- HandlerBase.cs
- ExtentKey.cs
- XmlAttributeProperties.cs
- ResourceProviderFactory.cs
- CodeSubDirectoriesCollection.cs
- Signature.cs
- ExpressionBuilderCollection.cs
- NameSpaceExtractor.cs
- XmlSchemaAny.cs
- ElementProxy.cs
- XmlILOptimizerVisitor.cs
- Statements.cs
- RowBinding.cs
- CollectionEditorDialog.cs
- EntityProviderServices.cs
- SQLChars.cs
- NotCondition.cs
- ToolStripLocationCancelEventArgs.cs
- ModelService.cs
- DataServiceProviderWrapper.cs
- documentsequencetextpointer.cs
- _Rfc2616CacheValidators.cs
- CacheForPrimitiveTypes.cs
- _SSPIWrapper.cs
- SspiHelper.cs
- MetadataResolver.cs
- UInt32Storage.cs
- XhtmlBasicCalendarAdapter.cs
- UmAlQuraCalendar.cs
- Polygon.cs
- RouteParser.cs
- XmlElementAttribute.cs
- DesignerDataParameter.cs
- CacheHelper.cs
- GridViewDeletedEventArgs.cs
- FileDialog_Vista_Interop.cs
- FileVersion.cs
- StrongNameKeyPair.cs
- Adorner.cs
- ClientOptions.cs
- PrintDocument.cs
- SerTrace.cs
- VirtualPathUtility.cs
- StringValidator.cs
- MatrixCamera.cs
- BinaryUtilClasses.cs
- Timeline.cs
- FixedSOMLineCollection.cs
- VirtualDirectoryMappingCollection.cs
- DnsPermission.cs
- LinqDataSourceView.cs
- WindowsGraphics.cs
- ConfigViewGenerator.cs
- DbConnectionPoolGroup.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- ResourceReader.cs
- WorkflowDesignerMessageFilter.cs
- XsdSchemaFileEditor.cs
- SoapCodeExporter.cs
- SmtpSection.cs
- UserControlCodeDomTreeGenerator.cs
- CryptoHelper.cs
- SamlSecurityToken.cs
- XPathDocumentNavigator.cs
- SelfSignedCertificate.cs
- KeyTime.cs
- EntityStoreSchemaGenerator.cs
- ForeignConstraint.cs
- Grant.cs