microsoft / microsoft/CsWin32

`MsiGetSummaryInformation()` and `MsiViewExecute()` should accept null for `hDatabase`/`hView`, respectively.

Open
#1,656 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C#
Stars
2.5k
Forks
124
Avg merge
1d 3h
Merged PRs (30d)
9

Description

Actual behavior

The docs say that these values are optional and 0 can be specified. The only way for me to handle this is to create a SafeHandle with a value of nint.Zero and use it.

Expected behavior

That these optional SafeHandle values accept null and handle it internally.

Repro steps

  1. NativeMethods.txt content:
MsiGetSummaryInformation
MsiViewExecute
  1. NativeMethods.json content (if present): N/A

  2. Any of your own code that should be shared? N/A

Context
  • CsWin32 version: 0.3.269
  • Win32Metadata version (if explicitly set by project): N/A
  • Target Framework: net472
  • LangVersion (if explicitly set by project): N/A

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the NativeMethods.txt entries for MsiGetSummaryInformation and MsiViewExecute, then inspect the generated declarations for their hDatabase and hView parameters. Reproduce the issue using the supplied NativeMethods.txt content and verify that null is accepted for both optional SafeHandle values without requiring a zero-valued handle.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.