I am trying to load name and icon for the application, that handles HTTP protocol (Microsoft Edge).
Both appear under HKEY_CURRENT_USER\SOFTWARE\Classes\AppXq0fevzme2pys62n3e0fbqa7peapykr8v
Icon: @{Microsoft.MicrosoftEdge_38.14393.0.0_neutral__8wekyb3d8bbwe?ms-resource://Microsoft.MicrosoftEdge/Files/Assets/MicrosoftEdgeSquare44x44.png}
App Name for Edge looks similar.
For the name, I am using RegLoadMUIStringW, which loads string from the resource, and it works for both IE (string of format @C:\Windows\System32\ieframe.dll,-55175), and Edge (similar to the Icon string above, e.g @{...?ms-resource://...}).
However, I cannot find a function, that would uniformly load an icon (ApplicationIcon) for both IE ("C:\Program Files\Internet Explorer\iexplore.exe",0) and Edge (see above). Moreover, I cannot find the way to load Edge icon at all (for IE I parse the string and use SHDefExtractIconW).
Is there a universal function, that would load icon with the old resource name (e.g. C:\file,1ndex), and a new one (ms-resource)?
If not, is there a documented way to load the ms-resource icon of another app, by the above-provided string?