static private EnumInterfaces ( List |
||
args | List |
|
Результат | int |
static int EnumInterfaces(List<string> args)
{
using (AnonymousPipeClientStream client = new AnonymousPipeClientStream(PipeDirection.Out, args[0]))
{
using (StreamWriter writer = new StreamWriter(client))
{
Guid clsid;
if (!Guid.TryParse(args[1], out clsid))
{
return 1;
}
bool sta = args[2] == "s";
CLSCTX clsctx;
if (!Enum.TryParse(args[3], true, out clsctx))
{
return 1;
}
int timeout = 10000;
if (args.Count > 4)
{
if (!int.TryParse(args[4], out timeout) || timeout < 0)
{
return 1;
}
}
COMEnumerateInterfaces intf = new COMEnumerateInterfaces(clsid, clsctx, sta, timeout);
if (intf.Exception != null)
{
writer.WriteLine("ERROR:{0:X08}", intf.Exception.NativeErrorCode);
return 1;
}
else
{
foreach (COMInterfaceInstance entry in intf.Interfaces)
{
writer.WriteLine("{0}", entry);
}
foreach (COMInterfaceInstance entry in intf.FactoryInterfaces)
{
writer.WriteLine("*{0}", entry);
}
return 0;
}
}
}
}