}// RemoveSpecificChild protected void RemoveSpecificChildByIndex(int nIndex) { // Have this child remove all his children nodes as well ArrayList al = new ArrayList(); al.Add(CNodeManager.GetNode(Child[nIndex])); int i = 0; while (i < al.Count) { // Put all this guy's children in the queue as well CNode node = (CNode)al[i]; for (int j = 0; j < node.NumChildren; j++) { al.Add(CNodeManager.GetNode(node.Child[j])); } i++; } // Start from the bottom and work our way up while (al.Count > 0) { CNode node = (CNode)al[al.Count - 1]; // First, close any property pages associated with it node.CloseAllMyPropertyPages(); // Inform MMC of this removal CNodeManager.CNamespace.DeleteItem(node.HScopeItem, 1); // Remove this node from the list CNodeManager.RemoveNode(node.Cookie); al.RemoveAt(al.Count - 1); } }// RemoveSpecificChildByIndex