If you're going to create and manage enums and UDT's you might be better off creating and managing your interfaces in IDL (interface definition language - sorry if you knew that already) There are some good examples with the platform SDK, and more on MSDN...