cleanup: switch from Microsoft::WRL::ComPtr to wil::com_ptr#13767
Merged
cleanup: switch from Microsoft::WRL::ComPtr to wil::com_ptr#13767
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request refactors COM pointer usage throughout the WSL codebase to consistently use the Windows Implementation Library's (WIL) wil::com_ptr smart pointer type and related helper functions, replacing the previous use of Microsoft::WRL::ComPtr.
Key changes:
- Replaced all
Microsoft::WRL::ComPtr<T>declarations withwil::com_ptr<T> - Replaced
CoCreateInstance(..., IID_PPV_ARGS(&ptr))patterns withwil::CoCreateInstance<ClassName, Interface>(CLSCTX) - Replaced
QueryInterface(IID_PPV_ARGS(&ptr))and.As(&ptr)patterns with.query<InterfaceType>() - Updated method calls:
.Get()→.get(),.GetAddressOf()→.addressof()
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| test/windows/UnitTests.cpp | Updated shortcut validation test to use .query<IPersistFile>() instead of QueryInterface |
| test/windows/PolicyTests.cpp | Changed local variable type from Microsoft::WRL::ComPtr to wil::com_ptr |
| src/windows/service/exe/WslCoreVm.h | Updated member variable m_deviceHostSupport to use wil::com_ptr type |
| src/windows/service/exe/LxssUserSession.cpp | Updated shortcut creation to use .query<IPersistFile>() |
| src/windows/service/exe/LxssIpTables.h | Updated firewall member variables and constructor parameters to use wil::com_ptr |
| src/windows/service/exe/LxssIpTables.cpp | Comprehensive refactoring: replaced CoCreateInstance patterns, updated method calls (.get(), .addressof()), and replaced QueryInterface/As patterns with .query<>() |
| src/windows/inc/comservicehelper.h | Updated COM interface member variables to use wil::com_ptr |
| src/windows/common/svccomm.cpp | Updated service session creation to use wil::CoCreateInstance and .query<>() for interface queries |
OneBlue
approved these changes
Nov 24, 2025
benhillis
added a commit
that referenced
this pull request
Nov 26, 2025
* wslsettings: allow OOBE window to close with escape key (#13686) * wslsettings: allow OOBE windows to close with escape key * fix memory leak --------- Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> * Localization change from build: 133610492 (#13704) Co-authored-by: WSL localization <noreply@microsoft.com> * wslsettings: fix OOBE text truncation at 200% text scaling (#13693) * wslsettings: fix OOBE text truncation at 200% text scaling Add text scaling factor to window resize calculation and make hero image height responsive to text scaling. Increase minimum window size for better accessibility. Fix MAS 1.4.4 compliance for OOBE dialog. * pr feedback --------- Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> * wslsettings: add underlines to links in about page (#13703) Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> * .clang-format: add InsertBraces: true and minor fix to FormatSource.ps1 (#13712) Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> * Localization change from build: 134015316 (#13731) Co-authored-by: WSL localization <noreply@microsoft.com> * wslsettings: ensure selected setting is auto-expanded and selected (#13689) * wslsettings: ensure selected setting is auto-selected Implement keyboard focus management for SettingsExpander controls across settings pages. This resolves an accessibility issue reported internally. * add asserts --------- Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> * build: fix minor compiler errors when building with VS2026 (#13744) * build: fix minor compiler errors when building with VS2026 * s * use VS2022 for clang format and cross compiling --------- Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> * chore(distributions): Almalinux auto-update - 20251119 12:04:35 (#13743) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Mask systemd-networkd-wait-online.service during boot (#13611) * deps: update a number of NuGet packages to the latest available versions (#13728) Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> * Notice change from build: 134267142 (#13751) Co-authored-by: WSL notice <noreply@microsoft.com> * Add *.slnx to .gitignore (#13754) * Fix service crash when collecting a linux crash dump when maxCrashDumpCount is set to 0 (#13755) * Fix service crash when collecting a linux crash dump when maxCrashDumpCount is set to 0 * Move the check inside the function * cleanup: VirtioNetworking refactoring (#13760) * cleanup: update VirtioNetworking class to not rely on the WslCoreConfig struct * cleanup: simplify VirtioNetworking construction * remove old constructor and other cleanup * more minor cleanup * string cleanup in HandleVirtioModifyOpenPorts --------- Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> * cleanup: switch from Microsoft::WRL::ComPtr to wil::com_ptr (#13767) * cleanup: switch from Microsoft::WRL::ComPtr to wil::com_ptr * reformat --------- Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> * chore(distributions): Almalinux auto-update - 20251124 17:13:02 (#13780) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Notice change from build: 134527933 (#13782) Co-authored-by: WSL notice <noreply@microsoft.com> * cleanup: VirtioNetworking refactoring to be more portable (#13783) * cleanup: VirtioNetworking refactoring to be more portable * more refactoring * make m_guestDeviceManager private --------- Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> --------- Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> Co-authored-by: Blue <OneBlue@users.noreply.github.com> Co-authored-by: WSL localization <noreply@microsoft.com> Co-authored-by: AlmaLinux Autobot <107999298+almalinuxautobot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.
This pull request refactors COM pointer usage throughout the codebase to consistently use the
wil::com_ptrsmart pointer and related helper functions, replacing the previous use ofMicrosoft::WRL::ComPtr.