Skip to content

Complete Classic COM infrastructure support - #99

Merged
leileizhang (lei9444) merged 1 commit into
mainfrom
lei9444/complete-classic-com-infrastructure
Aug 13, 2026
Merged

Complete Classic COM infrastructure support#99
leileizhang (lei9444) merged 1 commit into
mainfrom
lei9444/complete-classic-com-infrastructure

Conversation

@lei9444

Copy link
Copy Markdown
Contributor

Summary

  • complete generated IPropertyStore support and add a deterministic live ShellLink property round trip
  • initialize and validate BIND_OPTS.cbStruct from exact multi-architecture layout metadata
  • complete IStream generation with owned STATSTG projection and CoTaskMem cleanup
  • add exact-contract IMalloc projection with opaque allocator-bound allocations and borrowed cross-allocator DidAlloc inspection
  • expose CoGetClassObject, CoGetMalloc, and COM error-info acquisition with owned references and thread-local semantics
  • add generated/live coverage for IClassFactory, ICreateErrorInfo, and IErrorInfo
  • raise the complete Classic COM census to 5,567 / 7,929 interfaces (70.210619%)

Safety

  • keep direct pointer returns fail-closed outside exact registered contracts
  • reject forged, stale, consumed, and wrong-allocator allocation use where allocator identity is required
  • free nested STATSTG.pwcsName on success, HRESULT failure, conversion failure, and drop
  • validate exact declaring interface IID, vtable slot, method shape, layout, ownership, and cleanup evidence
  • preserve existing WinRT behavior and the npm root export surface

Validation

  • cargo test -p dynwinrt — 218 passed, 1 ignored
  • cargo test -p dynwinrt-codegen — 444 passed
  • JavaScript binding tests — 36 passed, 1 skipped
  • Classic COM E2E — 16/16 passed
  • x64 and i686 Rust/codegen/JS compile checks passed

Add complete IPropertyStore, BIND_OPTS, IStream, IMalloc, IClassFactory, and error-info projection/runtime support with exact ABI and ownership contracts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown

Mixed-language test coverage

Workflow status: ✅ Passed

Layer Lines Functions Branches/regions
Rust, including native .pyd/.node 81.26% 77.72% 81.19% regions
Generated Python projections 77.01% n/a 62.35% branches
JavaScript aggregate 18.77% 20.83% 52.26% branches
JavaScript runtime 19.91% 14.28% 7.14% branches
Generated WinRT projections 22.27% 20.02% 52.85% branches
Generated Classic COM projections 12.97% 23.45% 52.17% branches

View workflow run and download full HTML/LCOV/XML reports

@lei9444
leileizhang (lei9444) merged commit d02b372 into main Aug 13, 2026
25 checks passed
@lei9444
leileizhang (lei9444) deleted the lei9444/complete-classic-com-infrastructure branch August 13, 2026 06:31
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.

3 participants