The @dll.struct directive is very similar to the @com.struct directive emitted by the jactivex tool and implicitly by the javatlb tool. (The javatlb tool, documented in previous versions of Microsoft Visual J++, has been replaced by jactivex.) The main difference is that the default type mappings are suited for Microsoft Windows function calling instead of COM object calling. Given this information, it follows that you can also generate @dll.struct classes by describing the structure in a type library and using the jactivex tool to generate the Java class. However, it's usually faster to generate the classes manually.