Generating a Proxy DLL and a Type Library From a Single IDL File

You can use a single IDL file to generate both the proxy stubs and header files for marshaling code, and a type library. You do this by defining an interface outside the library block and then referencing that interface from inside the library block, as shown in this example:

//file: AllKnown.idl

[object, uuid(. . .), <other interface attributes>]
interface IKnown : IUnknown {
import "unknwn.idl";
<declarations, etc. for IKnown interface go here>
};

[<library attributes>]library KnownLibrary {

//reference interface IKnown:
interface IKnown;

//or create a new class:
  [<coclass attributes>] coclass KnowMore {
   interface IKnown;
  };
};
 

See Also

Marshaling OLE Data Types, Additional Files Required To Generate a Type Library