MalwareSourceCode/MSIL/Virus/Win32/E/Virus.Win32.Expiro.w-67b630ead60119692b9abbdfd8717c96904ef041127c2cae033c86b718eaa61e/Microsoft/InfoCards/BeginGetFileNameFromUserRequest.cs
2022-08-18 06:28:56 -05:00

73 lines
2.3 KiB
C#

// Decompiled with JetBrains decompiler
// Type: Microsoft.InfoCards.BeginGetFileNameFromUserRequest
// Assembly: infocard, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// MVID: ADE0A079-11DB-4A46-8BDE-D2A592CA8DEA
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00000-msil\Virus.Win32.Expiro.w-67b630ead60119692b9abbdfd8717c96904ef041127c2cae033c86b718eaa61e.exe
using Microsoft.InfoCards.Diagnostics;
using System;
using System.IO;
namespace Microsoft.InfoCards
{
internal class BeginGetFileNameFromUserRequest : UIAgentAsyncBeginRequest
{
private bool m_getContent;
private string m_arguments;
public BeginGetFileNameFromUserRequest(
IntPtr rpcHandle,
Stream inArgs,
Stream outArgs,
ClientUIRequest parent)
: base(rpcHandle, inArgs, outArgs, parent)
{
}
protected override void OnMarshalAsyncInArgs(BinaryReader reader)
{
this.m_getContent = reader.ReadBoolean();
this.m_arguments = Utility.DeserializeString(reader);
}
protected override object AsyncExecute(AsyncParams asyncParams)
{
uint num = 0;
string empty = string.Empty;
GetFileNameResult getFileNameResult = new GetFileNameResult();
using (new SystemIdentity(true))
num = NativeMcppMethods.CreateAndWaitForFileOpenDialogWrapper(this.m_arguments, this.RequestorIdentity, this.ParentRequest.CallerPid, ref empty);
if (num == 0U)
{
try
{
getFileNameResult.FileName = empty;
if (this.m_getContent)
{
if (!string.IsNullOrEmpty(empty))
{
FileInfo fileInfo = new FileInfo(empty);
using (FileStream fileStream = File.OpenRead(empty))
{
BinaryReader binaryReader = (BinaryReader) new InfoCardBinaryReader((Stream) fileStream);
getFileNameResult.FileContent = binaryReader.ReadBytes((int) fileInfo.Length);
}
}
}
}
catch (Exception ex)
{
if (!InfoCardTrace.IsFatal(ex))
throw InfoCardTrace.ThrowHelperError((Exception) new FileAccessException(SR.GetString("ServiceInaccessibleFile"), ex));
throw;
}
}
return (object) getFileNameResult;
}
protected override void AsyncCancel()
{
}
}
}