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
- SourceFileInfo.cs
- ObsoleteAttribute.cs
- ToggleButton.cs
- DataGridViewAccessibleObject.cs
- UndoManager.cs
- PropertyChangedEventManager.cs
- SocketException.cs
- Int64AnimationUsingKeyFrames.cs
- ScalarOps.cs
- NameValuePair.cs
- StateWorkerRequest.cs
- DataRowView.cs
- FontFamilyConverter.cs
- DependencyPropertyChangedEventArgs.cs
- AxisAngleRotation3D.cs
- WmlCalendarAdapter.cs
- ManagementObjectSearcher.cs
- OleDbFactory.cs
- ComplexLine.cs
- GeneralTransformGroup.cs
- sqlstateclientmanager.cs
- SoapSchemaMember.cs
- DataGridViewColumnConverter.cs
- SoapTypeAttribute.cs
- HatchBrush.cs
- DbDataReader.cs
- JsonServiceDocumentSerializer.cs
- BindingExpressionUncommonField.cs
- DrawingGroup.cs
- UrlAuthFailureHandler.cs
- InternalCache.cs
- ThumbAutomationPeer.cs
- SupportingTokenListenerFactory.cs
- ProxyFragment.cs
- CodeNamespaceImportCollection.cs
- VectorConverter.cs
- StorageEntityTypeMapping.cs
- Matrix.cs
- XPathMultyIterator.cs
- QuaternionIndependentAnimationStorage.cs
- SamlConstants.cs
- DataGridViewColumnTypePicker.cs
- Wrapper.cs
- CancelEventArgs.cs
- BlockUIContainer.cs
- LexicalChunk.cs
- updatecommandorderer.cs
- AsymmetricKeyExchangeFormatter.cs
- versioninfo.cs
- initElementDictionary.cs
- AnnotationService.cs
- ArrayWithOffset.cs
- System.Data.OracleClient_BID.cs
- XmlWriter.cs
- PrtCap_Public_Simple.cs
- BevelBitmapEffect.cs
- JavaScriptObjectDeserializer.cs
- RequestTimeoutManager.cs
- RuntimeConfig.cs
- ViewStateModeByIdAttribute.cs
- VerifyHashRequest.cs
- GeometryCollection.cs
- DetailsViewDeleteEventArgs.cs
- ImageCodecInfo.cs
- AdornerHitTestResult.cs
- EntityUtil.cs
- FixedHighlight.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- CodeTypeDelegate.cs
- ProxyManager.cs
- ConnectionOrientedTransportChannelListener.cs
- FixedTextSelectionProcessor.cs
- EntityModelSchemaGenerator.cs
- ToolTipService.cs
- XmlSubtreeReader.cs
- GradientBrush.cs
- BitmapVisualManager.cs
- LogExtentCollection.cs
- MethodAccessException.cs
- RadioButtonRenderer.cs
- BufferedWebEventProvider.cs
- StaticTextPointer.cs
- DataGridViewCellCollection.cs
- UIElementAutomationPeer.cs
- CacheSection.cs
- UserInitiatedNavigationPermission.cs
- TextProperties.cs
- DataGridViewColumn.cs
- QuestionEventArgs.cs
- Error.cs
- SafeProcessHandle.cs
- ProxyHwnd.cs
- CreateUserWizard.cs
- QueryIntervalOp.cs
- WeakEventManager.cs
- SortKey.cs
- Deflater.cs
- PageOutputQuality.cs
- ConvertersCollection.cs
- AnimationException.cs