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
- storepermission.cs
- WebReferencesBuildProvider.cs
- CodeRemoveEventStatement.cs
- ThreadStartException.cs
- LoadMessageLogger.cs
- InternalControlCollection.cs
- PrinterResolution.cs
- CompilationLock.cs
- CheckedPointers.cs
- MeasureItemEvent.cs
- ConfigurationManagerHelper.cs
- IPAddress.cs
- _ConnectStream.cs
- HotSpot.cs
- NamespaceInfo.cs
- COM2PropertyBuilderUITypeEditor.cs
- TextHintingModeValidation.cs
- DictionaryTraceRecord.cs
- HttpPostClientProtocol.cs
- Encoder.cs
- Image.cs
- SemanticResolver.cs
- ResourcePool.cs
- ObsoleteAttribute.cs
- OrderedDictionaryStateHelper.cs
- EdmTypeAttribute.cs
- MdiWindowListStrip.cs
- VariableQuery.cs
- CodeSnippetTypeMember.cs
- MeshGeometry3D.cs
- RuleSettingsCollection.cs
- LostFocusEventManager.cs
- ViewStateModeByIdAttribute.cs
- CustomError.cs
- InplaceBitmapMetadataWriter.cs
- WebPartUtil.cs
- AnchoredBlock.cs
- DataGridViewImageCell.cs
- BindableTemplateBuilder.cs
- WaitHandleCannotBeOpenedException.cs
- WebControlsSection.cs
- EventPrivateKey.cs
- ContextMenuAutomationPeer.cs
- FontCacheUtil.cs
- SafePEFileHandle.cs
- Int32CollectionConverter.cs
- BrowserCapabilitiesCodeGenerator.cs
- ObjectIDGenerator.cs
- WebPartConnectionsConnectVerb.cs
- webclient.cs
- PageVisual.cs
- KerberosSecurityTokenProvider.cs
- InternalsVisibleToAttribute.cs
- FixedSOMSemanticBox.cs
- FormCollection.cs
- CompiledQueryCacheKey.cs
- MimeMapping.cs
- Hex.cs
- Semaphore.cs
- DelegatingHeader.cs
- PathSegment.cs
- SelectionProcessor.cs
- WFItemsToSpacerVisibility.cs
- COAUTHINFO.cs
- MaskedTextBox.cs
- Terminate.cs
- SrgsItemList.cs
- BindingsCollection.cs
- PageAsyncTaskManager.cs
- TableItemStyle.cs
- InvokePattern.cs
- XmlTextReaderImpl.cs
- WmlSelectionListAdapter.cs
- XmlNamedNodeMap.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- UiaCoreTypesApi.cs
- ModulesEntry.cs
- RowBinding.cs
- DesignerOptionService.cs
- ZipIOBlockManager.cs
- TrimSurroundingWhitespaceAttribute.cs
- Model3DGroup.cs
- SoapFault.cs
- SqlTrackingQuery.cs
- x509store.cs
- SetIterators.cs
- QilName.cs
- QueryContinueDragEventArgs.cs
- NameTable.cs
- TransformerInfoCollection.cs
- SharedPerformanceCounter.cs
- XmlCodeExporter.cs
- EventRouteFactory.cs
- NavigationCommands.cs
- XamlFxTrace.cs
- CodeVariableReferenceExpression.cs
- XmlAttribute.cs
- WindowsScrollBar.cs
- LogicalTreeHelper.cs
- GridViewDeleteEventArgs.cs