Repository navigation
Conversation
Every name of the ProjectInfo2 name area now has an owner: the private object descriptor's +0x20 and +0x24 arrays, misread as a method name table and a parameter name table, describe an object's public variables and implemented interfaces, and its events' prototypes. Adds structure extents for every structure the crate reads, member and event prototype descriptors, type library, interface and record type references, UDT layouts, constant pool entry roles and pool descriptors, DISPID maps, native unwind records with their error handler, Resume and line number tables, native code entry discovery, event names from the embedded type library, and late-bound call resolution by DISPID. Breaking: renames PrivateObjectDescriptor, ControlInfo, ArgType and InterfaceMetadata (now TypeLibRef) accessors, widens FuncTypDesc::dispid to i32, and removes vb::varstub, whose structure does not exist. Adds fixtures errors-native, eventnames, records, typerefs and udts. See CHANGELOG.md for the full list of changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Release 0.5.0. Every name of the ProjectInfo2 name area now has an owner: the private object descriptor's +0x20 and +0x24 arrays, which the crate misread as a method name table and a parameter name table, describe an object's public variables and implemented interfaces, and its events' prototypes.
Added
VbProject::structure_extents) for every structure the crate readsvb::member), event prototypes and name ownership (VbProject::name_references)vb::typeref:TypeLibRef,InterfaceRef,RecordRef), UDT layouts and array element typesInstruction::pool_references) and pool descriptors (vb::pooldesc)ControlKind::{Control, WithEvents, Implements})vb::native) with error handler,ResumeandErlline number tables; native code entry discoverymsft-typelib0.2.0)errors-native,eventnames,records,typerefs,udtsBreaking changes (why this is 0.5.0, not 0.4.1)
PrivateObjectDescriptor,ControlInfoandArgTypeaccessors renamed;InterfaceMetadatais nowvb::typeref::TypeLibRefFuncTypDesc::dispidreturns the full DISPID asi32EventSinkVtable::parsetakes the entry'sControlInfovb::varstubandInterfaceMetadata::{dispatch_names, all_dispatch_names}Fixed
EventSinkVtableextents ofImplementsentries, and the event handlers ofWithEventsvariables, which read the dual interface'sIDispatchslots as handlersFull details in
CHANGELOG.md.Release prep
Cargo.toml/Cargo.lock; CHANGELOG section dated and compare links updatedCargo.lockresolvesmsft-typelibfrom crates.io (it had no registry source/checksum because of a local path override)cargo fmtapplied tosrc/entrypoint.rsandsrc/vb/native.rsTest plan
Run in a clean export of the tree, outside any local
[patch.crates-io]overrides:cargo teston stable and 1.88 (278 unit, 83 integration, 2 doc tests pass)cargo clippy --all-targets --all-features -- -D warningscargo fmt --checkRUSTDOCFLAGS=-D warnings cargo doc --no-depscargo publish --dry-run(247 files, 632 KiB compressed)