Fix WellKnownFolder.Downloads on Windows #17107
Merged
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.
What does the pull request do?
Fixes querying
StorageProvider.TryGetWellKnownFolderAsync
forWellKnownFolder.Downloads
on Windows. Addresses #17086This code can be removed in the future once .NET adds managed support, but it's not happening for .NET 9.
What is the current behavior?
Returns a null string on Windows because the
DllImport
signature doesn't match the win32api signature due toPreserveSig = false
being omitted.What is the updated/expected behavior with this PR?
Returns the download folder.
How was the solution implemented (if it's not obvious)?
Removed runtime marshalling. Properly use
Marshal.FreeCoTaskMem
to free theppszPath
as per documentation, even in cases where the method fails.Checklist
Fixed issues
Fixes #17086