public static GetILForSD ( byte sd ) : string | ||
sd | byte | |
return | string |
private void LoadAppIDs(bool filterIL, bool filterAC) { List <IGrouping <Guid, COMCLSIDEntry> > clsidsByAppId = m_reg.ClsidsByAppId.ToList(); IDictionary <Guid, COMAppIDEntry> appids = m_reg.AppIDs; List <TreeNode> serverNodes = new List <TreeNode>(); foreach (IGrouping <Guid, COMCLSIDEntry> pair in clsidsByAppId) { if (appids.ContainsKey(pair.Key)) { COMAppIDEntry appidEnt = appids[pair.Key]; if (filterIL && String.IsNullOrWhiteSpace(COMUtilities.GetILForSD(appidEnt.AccessPermission)) && String.IsNullOrWhiteSpace(COMUtilities.GetILForSD(appidEnt.LaunchPermission))) { continue; } if (filterAC && !COMUtilities.SDHasAC(appidEnt.AccessPermission) && !COMUtilities.SDHasAC(appidEnt.LaunchPermission)) { continue; } TreeNode node = new TreeNode(appidEnt.Name); node.Tag = appidEnt; StringBuilder builder = new StringBuilder(); AppendFormatLine(builder, "AppID: {0}", pair.Key); if (!String.IsNullOrWhiteSpace(appidEnt.RunAs)) { AppendFormatLine(builder, "RunAs: {0}", appidEnt.RunAs); } if (!String.IsNullOrWhiteSpace(appidEnt.LocalService)) { AppendFormatLine(builder, "LocalService: {0}", appidEnt.LocalService); } string perm = appidEnt.LaunchPermissionString; if (perm != null) { AppendFormatLine(builder, "Launch: {0}", LimitString(perm, 64)); } perm = appidEnt.AccessPermissionString; if (perm != null) { AppendFormatLine(builder, "Access: {0}", LimitString(perm, 64)); } node.ToolTipText = builder.ToString(); int count = pair.Count(); TreeNode[] clsidNodes = new TreeNode[count]; string[] nodeNames = new string[count]; int j = 0; foreach (COMCLSIDEntry ent in pair) { clsidNodes[j] = CreateClsidNode(ent); nodeNames[j] = ent.Name; j++; } Array.Sort(nodeNames, clsidNodes); node.Nodes.AddRange(clsidNodes); serverNodes.Add(node); } } treeComRegistry.Nodes.AddRange(serverNodes.ToArray()); Text = "AppIDs"; }