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
- ConfigurationLocation.cs
- Splitter.cs
- IntegerFacetDescriptionElement.cs
- ShaderEffect.cs
- DynamicQueryableWrapper.cs
- ProcessInputEventArgs.cs
- mda.cs
- LinearKeyFrames.cs
- ChtmlTextWriter.cs
- HatchBrush.cs
- GifBitmapDecoder.cs
- CompatibleIComparer.cs
- EventLogPermissionEntryCollection.cs
- Image.cs
- ServiceBusyException.cs
- SessionIDManager.cs
- SoapMessage.cs
- ColumnWidthChangingEvent.cs
- HierarchicalDataBoundControl.cs
- ConnectionPointCookie.cs
- AssemblyGen.cs
- RequestSecurityTokenForGetBrowserToken.cs
- ColorConvertedBitmap.cs
- ColorConvertedBitmapExtension.cs
- Trace.cs
- ColumnMapVisitor.cs
- User.cs
- CommandHelpers.cs
- CngKeyBlobFormat.cs
- TraceSource.cs
- ObjectDataSource.cs
- SpellerInterop.cs
- OdbcConnectionOpen.cs
- XmlElementList.cs
- OdbcError.cs
- FastPropertyAccessor.cs
- DropShadowEffect.cs
- SmiEventSink_Default.cs
- ColorContext.cs
- ToolStripOverflow.cs
- ToolStripSettings.cs
- ParserStack.cs
- User.cs
- SamlAuthorityBinding.cs
- InstanceNameConverter.cs
- WebPartDisplayModeEventArgs.cs
- AuthorizationRuleCollection.cs
- NetworkCredential.cs
- DocumentViewerBase.cs
- BrowserDefinitionCollection.cs
- FlowLayoutSettings.cs
- ExpressionBuilderContext.cs
- AlphabeticalEnumConverter.cs
- ParserContext.cs
- EntityObject.cs
- ImageAttributes.cs
- AssertSection.cs
- SizeKeyFrameCollection.cs
- ToolBarOverflowPanel.cs
- ParentQuery.cs
- DataSpaceManager.cs
- EdmProviderManifest.cs
- TerminatorSinks.cs
- RayHitTestParameters.cs
- CultureInfoConverter.cs
- XamlInt32CollectionSerializer.cs
- XmlUtil.cs
- PageParser.cs
- DataGridColumnHeadersPresenterAutomationPeer.cs
- CodeNamespaceImportCollection.cs
- TdsParserHelperClasses.cs
- BitmapMetadataBlob.cs
- StrongNameMembershipCondition.cs
- XmlCompatibilityReader.cs
- RemotingAttributes.cs
- PreProcessor.cs
- PolyBezierSegment.cs
- SafeNativeMethods.cs
- URLMembershipCondition.cs
- OleDbConnectionFactory.cs
- DbCommandDefinition.cs
- RegistryKey.cs
- RegionInfo.cs
- DataGridPagerStyle.cs
- BuildProvidersCompiler.cs
- GridEntry.cs
- DbConnectionFactory.cs
- ByteStream.cs
- PackWebResponse.cs
- securestring.cs
- OverflowException.cs
- XmlSyndicationContent.cs
- TransformGroup.cs
- ExpressionConverter.cs
- RepeatInfo.cs
- PaperSource.cs
- TextAction.cs
- XPathBuilder.cs
- DependencyObjectPropertyDescriptor.cs
- CodePageUtils.cs