internal static void GetEntryPoint(ActivationContext activationContext, out string fileName, out string parameters)
{
parameters = null;
fileName = null;
ICMS applicationComponentManifest = activationContext.ApplicationComponentManifest;
if ((applicationComponentManifest == null) || (applicationComponentManifest.EntryPointSection == null))
{
throw new ArgumentException(Environment.GetResourceString("Argument_NoMain"));
}
IEnumUnknown unknown = (IEnumUnknown) applicationComponentManifest.EntryPointSection._NewEnum;
uint celtFetched = 0;
object[] rgelt = new object[1];
if ((unknown.Next(1, rgelt, ref celtFetched) == 0) && (celtFetched == 1))
{
IEntryPointEntry entry = (IEntryPointEntry) rgelt[0];
EntryPointEntry allData = entry.AllData;
if ((allData.CommandLine_File != null) && (allData.CommandLine_File.Length > 0))
{
fileName = allData.CommandLine_File;
}
else
{
IAssemblyReferenceEntry entry3 = null;
object ppUnknown = null;
if (allData.Identity != null)
{
((ISectionWithReferenceIdentityKey) applicationComponentManifest.AssemblyReferenceSection).Lookup(allData.Identity, out ppUnknown);
entry3 = (IAssemblyReferenceEntry) ppUnknown;
fileName = entry3.DependentAssembly.Codebase;
}
}
parameters = allData.CommandLine_Parameters;
}
}