Hi Andrew: that was a productive meeting about your C++ to COM project. Here is the plan the way I understand it: 1. do a simple COM example manually. 2. Design an aspect language COM-Comp for describing how the C++ classes need to be turned into COM components. Support multiple interfaces to the same C++ class. 3. Design an aspect language COM-Glue for glueing the COM components together. 4. Write a tool which takes as inputs C++ classes, a COM-Comp description, and a COM-Glue description and it generates an executable COM system satisfying the COM-Comp description and the COM-Glue description. Proceed as follows using Demeter/Java as implementation tool: Use the C++ grammar for the Java Compiler Compiler from SUN. Embed the .jj file into a Demeter/Java environment for C++ in a similar way as http://www.ccs.neu.edu/research/demeter/course/f97/projects/motorola/html/project.html embedds stubgen.jj into a Demeter/Java environment. (You may want to start with a subset of C++) Write a cd for COM-Comp and COM-Glue and write behavior files which manipulate the C++ syntax trees to generate the code necessary for COM. 5. Apply your tool to the example in 1. 6. Apply your tool to the Xerox project and try different decompositions into COM components. 7. Write a report on how it all worked. Don't include any Xerox proprietary information. I would like to post COM-Comp and COM-Glue and the Demeter/Java code on the web since it does not contain Xerox proprietary info. Demeter/Java works on PCs and UNIX. http://www.ccs.neu.edu/research/demeter/DemeterJava/ Have a good trip. -- Karl