The type library tool is invoked any time you build a project which includes a a type library tool specification, or .SPEC, file. This is a text file, where the first line must be:
Origin: COM-type-library
This line identifies that the type library tool should be used to process the file. When it runs, the type library tool will regenerate the module and stub files when they do not exist, or if the .SPEC file has been modified more recently then the last build.
Type library tool specification files can contain the following keywords:
Type-library:SPEC file keyword
Type-library: typelibrary-path
SPEC file keyword
Module-file: module-file-to-generate
SPEC file keyword
Module: module-name-to-generate
SPEC file keyword
Stub-file: stub-file-to-generate
SPEC file keyword
Generate: type-of-stubs
Stub-file:. Possible values of type-of-stubs are:
dispatch-clients define dispatch-client.
dispatch-servers define dispatch-interface.
vtable-interfaces define vtable-interface. The names of server interfaces are affected by the value of Server-suffix: (below). The names of client interfaces and whether client interfaces are generated are affected by the presence and the value of Client-suffix: (below).
dual-interfaces define vtable-interface. The names of server interfaces are affected by the value of Server-suffix:. The names of client interfaces and whether client interfaces are generated are affected by the presence and the value of Client-suffix:.
SPEC file keyword
Server-suffix: server-suffix
Generate:'s type-of-stubs argument is vtable-interfaces or dual-interfaces. Specifies a suffix which is appended to generated server interface names. If no value is provided or the Server-suffix: keyword is omitted then no suffix is appended.
SPEC file keyword
Client-suffix: client-suffix
Generate:'s type-of-stubs argument is vtable-interfaces or dual-interfaces. Specifies a suffix which is appended to generated client interface names. If the Client-suffix: keyword is omitted then client classes are not generated (the client-class clause is not provided to the define vtable-interfaces or define dual-interfaces macro invocation). To generate client classes but not append a suffix, an empty value must be provided to the Client-suffix: keyword. For example:
Client-suffix:Interfaces:
SPEC file keyword
Interfaces: interfaces-and-coclasses-to-translate
Interfaces: IInterfaceOne
InterfaceOneCoclass
IInterfaceTwo
InterfaceTwoCoclass