typedef [public] data-type identifier;
typedef [public] long MEMBERID;
The public attribute includes an alias declared with the typedef keyword in the type library.
By default, an alias that is declared with typedef and has no other attributes is treated as a #define and is not included in the type library. Using the public attribute ensures that the alias becomes part of the type library.
Note The MIDL compiler requires that you explicitly apply the public attribute to each typedef that you want public. This is in contrast to MKTYPLIB, which treated as public, every typedef inside of a public interface block.
interface, ODL File Syntax, ODL File Example, Generating a Type Library With MIDL, Differences Between MIDL and MKTYPLIB