void LoadROT()
{
IBindCtx bindCtx;
listViewROT.Items.Clear();
try
{
bindCtx = COMUtilities.CreateBindCtx(0);
IRunningObjectTable rot;
IEnumMoniker enumMoniker;
IMoniker[] moniker = new IMoniker[1];
bindCtx.GetRunningObjectTable(out rot);
rot.EnumRunning(out enumMoniker);
while (enumMoniker.Next(1, moniker, IntPtr.Zero) == 0)
{
string strDisplayName;
Guid clsid;
moniker[0].GetDisplayName(bindCtx, null, out strDisplayName);
moniker[0].GetClassID(out clsid);
ListViewItem item = listViewROT.Items.Add(strDisplayName);
item.Tag = new MonikerInfo(strDisplayName, clsid, moniker[0]);
if (m_reg.Clsids.ContainsKey(clsid))
{
item.SubItems.Add(m_reg.Clsids[clsid].Name);
}
else
{
item.SubItems.Add(clsid.ToString("B"));
}
}
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine(e.ToString());
}
listViewROT.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
}