Skip to content

Conversation

@emesare
Copy link
Member

@emesare emesare commented Feb 12, 2026

Need to tidy up a bit and add a few missing things, namely HRESULT enum construction from winmd files and create from project command.

Allow users to easily create, diff, dump and validate type libraries

Supports the following formats:

  • C header files (via core type parsers)
  • Binary files (collects exported and imported functions and referenced types)
  • WinMD files (via windows-metadata crate)
  • Existing type library files (for easy fixups)
  • Apiset files (to resolve through forwarded windows dlls)

Can be invoked as a regular plugin via UI commands or via CLI.

Processing of type libraries inherently requires external linking, processing will automatically merge and deduplicate colliding type libraries so prefer to use inside a project or a directory and process all information (for a given platform) at once, rather than smaller invocations.

- Rename and retype `FileMetadata::filename` and make the assignment required to happen at time of construction.
- Add `FileMetadata::display_name` which is only to be used for presentation purposes.
- Add `FileMetadata::virtual_path` for containers.
- Rename `FileMetadata::modified` to `FileMetadata::is_modified` to be more consistent across codebase.
- Add some missing documentation.
- Add `BinaryView::from_metadata` with accompanying documentation.
@emesare emesare force-pushed the test_type_lib_rust_api_improvements branch from a726d35 to 1fea541 Compare February 12, 2026 04:31
@emesare emesare self-assigned this Feb 12, 2026
@emesare emesare mentioned this pull request Feb 12, 2026
Allow users to easily create, diff, dump and validate type libraries

Supports the following formats:
- C header files (via core type parsers)
- Binary files (collects exported and imported functions)
- WinMD files (via `windows-metadata` crate)
- Existing type library files (for easy fixups)
- Apiset files (to resolve through forwarded windows dlls)

Can be invoked as a regular plugin via UI commands or via CLI.

Processing of type libraries inherently requires external linking, processing will automatically merge and deduplicate colliding type libraries so prefer to use inside a project or a directory and process all information (for a given platform) at once, rather than smaller invocations.
@emesare emesare force-pushed the test_type_lib_rust_api_improvements branch from 1fea541 to 68fcc03 Compare February 12, 2026 04:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant