[ComVisible(true)]
[Guid("D6315E8A-027A-4BEE-A556-3A873EEC55E1")]
public interface ITreeManager {
void Initialize(ref int treeHandle);
int AddNode(int treeHandle, int parentId, [MarshalAs(UnmanagedType.BStr)] string text);
[return: MarshalAs(UnmanagedType.SafeArray)]
int[] GetChildren(int treeHandle, int parentId);
}
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
public class TreeManager : ITreeManager {
private static Dictionary<int, TreeStructure> _trees = new Dictionary<int, TreeStructure>();
public void Initialize(ref int treeHandle) {
treeHandle = new Random().Next(1000, 9999);
_trees[treeHandle] = new TreeStructure();
}
}