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
- DispatcherSynchronizationContext.cs
- DataListGeneralPage.cs
- EntityDataSourceUtil.cs
- HMACSHA384.cs
- StorageRoot.cs
- PageOrientation.cs
- Empty.cs
- ToolboxComponentsCreatingEventArgs.cs
- WebPartAuthorizationEventArgs.cs
- WebHeaderCollection.cs
- ListControlConvertEventArgs.cs
- ResXFileRef.cs
- TextTrailingWordEllipsis.cs
- _AutoWebProxyScriptHelper.cs
- FunctionParameter.cs
- EventData.cs
- Storyboard.cs
- SubstitutionList.cs
- DataKey.cs
- StorageRoot.cs
- ISSmlParser.cs
- SHA512Managed.cs
- SamlAction.cs
- StorageBasedPackageProperties.cs
- CleanUpVirtualizedItemEventArgs.cs
- initElementDictionary.cs
- ArrayList.cs
- RawTextInputReport.cs
- SimpleBitVector32.cs
- TextTreeUndo.cs
- SkipQueryOptionExpression.cs
- FlowDocument.cs
- DocumentReference.cs
- MetafileHeader.cs
- XamlReader.cs
- OleDbConnectionInternal.cs
- CellPartitioner.cs
- LineServicesCallbacks.cs
- XamlStream.cs
- ErrorFormatterPage.cs
- ActivityDesignerHelper.cs
- PolicyValidationException.cs
- ToolStripDropDownButton.cs
- StorageEntityTypeMapping.cs
- FigureHelper.cs
- Console.cs
- _CommandStream.cs
- Graphics.cs
- WebPartTracker.cs
- LayoutEditorPart.cs
- XmlSchemaFacet.cs
- GorillaCodec.cs
- FontCacheUtil.cs
- XmlnsCache.cs
- LocationUpdates.cs
- TextServicesCompartment.cs
- InternalControlCollection.cs
- TreeView.cs
- DataGridViewColumnCollection.cs
- XmlSchemaSimpleType.cs
- TemplateControlBuildProvider.cs
- Hex.cs
- DetailsViewRowCollection.cs
- DataFormats.cs
- SafeProcessHandle.cs
- ListViewInsertionMark.cs
- SoapFormatterSinks.cs
- RadialGradientBrush.cs
- XmlDataImplementation.cs
- WizardPanelChangingEventArgs.cs
- TraceContextRecord.cs
- TcpTransportSecurity.cs
- BindValidator.cs
- HideDisabledControlAdapter.cs
- FileDialogCustomPlace.cs
- TableStyle.cs
- IgnoreSectionHandler.cs
- InheritanceContextChangedEventManager.cs
- ObjectItemCollection.cs
- ProfilePropertyNameValidator.cs
- ParameterToken.cs
- DeviceContext.cs
- RuleSettings.cs
- PageCache.cs
- ClrProviderManifest.cs
- ConsoleKeyInfo.cs
- Psha1DerivedKeyGeneratorHelper.cs
- LayoutTableCell.cs
- ObjectPersistData.cs
- PathSegment.cs
- CommandArguments.cs
- XmlArrayItemAttribute.cs
- IsolationInterop.cs
- Point.cs
- NonSerializedAttribute.cs
- ButtonField.cs
- InvalidPropValue.cs
- AlphabeticalEnumConverter.cs
- ControllableStoryboardAction.cs
- SQLMoney.cs