Guys, here is a version of tlb2h with some larg-ish changes
A brief justification for the -s/-x modifications and implementation:
We have a typlibrary that expands to 87290 lines for the client version
It has 491 coclasses and 726 interfaces and takes at least 5 minutes to
output the full client version,
and a similar time to compile the precompiled headers for it.
It makes use of inheritance, and given that it is a com interface to a
database - the interface stubbing is required, or once you ask for one
root interface, we would end up having to bring in all the interfaces as
there are very few isolated interfaces.
//.
-------------------------------
* Fixed up namespace mapping.
* Added symbol mapping. ( #imports rename() and rename_namespace()
functions )
* When using -s/-x (specify symbols to include/exclude),
- Only the specified interfaces & coclasses are output with full
information (as before)
- Any interfaces mentioned in the coclasses or the interface
methods are stubbed
(no method implementations - vtable fillers)
- Any interfaces / coclasses not mentioned are excluded (This is
the major addition)
- Add the ability ('*' prefix in the -s file) to output server
wrappers for individual interfaces.
- Don't output connection-point implementations of unexposed
symbols
* When outputting the server version:
- If there is a connection-point from a foreign type-library -
don't try and make interface entries
for the interface - it doesn't compile.
* When outputting the client version:
- Don't output connection-point implementations
- Output the server implementation instead for source
interfaces.
* Small things
- Changed the incompatible compile-time error message to
"This header was generated with a different version of
tlb2h. Please rebuild"
- Added '-F' option to exclude connection-point implementations
from foreign type-libraries.
- Cleaned up outputting of section header comments with no
elements in them
- Fixed the comment in the switch statement of dispatch
implementations.