Fix for latest autodesk [fusion360 installer](https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/issue… calling SHGetKnownFolderPath against [FOLDERID_UserPinned](https://learn.microsoft.com/lv-lv/windows/win32/shell/…
Trace Output pre-patch:
```
15285.659:057c:05c0:trace:shell:SHGetKnownFolderPath {9e3995ab-1f9c-4f13-b827-48b24b6c7174}, 0x00000000, 0000000000000000, 0000000003FB0D98
15285.659:057c:05c0:trace:shell:SHGetFolderPathAndSubDirW 0000000000000000,0x6c,0000000000000000,0,(null),000000000410E3F0
15285.659:057c:05c0:trace:shell:SHGetFolderPathAndSubDirW returning 0x80070057 (final path is L"")
15285.659:057c:05c0:trace:shell:SHGetKnownFolderPath Failed to get folder path, 0x80070057.
15285.659:057c:05c0:Ret shell32.SHGetKnownFolderPath() retval=80070057 ret=6ffff9774771
```
SHGetFolderPathAndSubDirW returns 0x57 invalid-parameter error (0x80070057) due to the folder array in shell32/shellpath.c having CSIDL_Type_Disallowed set on UserPinned and QuickLaunch folders.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5525
Previously, `SetupDiGetINFClassW()` read INF files
with `GetPrivateProfileString()`, which does not substitute %strkey%
tokens.
This caused device installation to fail for devices which had driver
INF files using %strkey% tokens in Version section.
An example of such device is Vernier LabQuest Mini (08f7:0008) for
which Vernier's LoggerPro application includes a driver.
The INF file in question adds a new device setup class and has
following entries in Version section:
```
Class = %ClassName%
ClassGuid = %DeviceClassGUID%
```
Strings section includes following entries:
```
DeviceClassGUID = "{6B8429BF-10AD-4b66-9FBA-2FE72B891721}"
ClassName = "VST_WinUSB"
```
Previously, when LoggerPro was installed and LabQuest Mini was
hotplugged, device installation failed with the following error:
```
fixme:setupapi:SetupDiGetINFClassW failed to convert "L"%DeviceClassGUID"" into a guid
```
This caused GUID_NULL to be used and Class was not set to the registry
for the device.
With this commit, correct class GUID and names are set to the device
registry entry.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56579
--
v2: setupapi: use INF parser to read class GUID and class name
setupapi/tests: add tests for reading INF class with %strkey% tokens
https://gitlab.winehq.org/wine/wine/-/merge_requests/5519