C++/CX exposes `IPropertyValue` through `Platform::Details::CreateValue`, which returns a `Platform::Object` (which just seems to be a `IPropertyValue` object + C++ RTTI) containing the boxed value.
Apps don't seem to call `CreateValue` directly with a typecode. The code for boxing values gets generated when a value type gets assigned to a `Platform::Object` variable, as documented [here.](https://learn.microsoft.com/en-us/cpp/extensions/boxing-cpp-componen… The generated code will:
1. Call `__abi_make_type_id` with a `struct __abi_type_descriptor *` value, which is just a typecode + string pair. This returns a `Platform::Type` object.
2. Call `Platform::Type::GetTypeCode` on the returned `Platform::Type` object to get back the typecode.
3. Call `Platform::Details::CreateValue` with the typecode and a pointer to the actual value that needs to be boxed.
Apart from the usual WinRT methods, `Platform::Type` obejcts also impement the `IEquatable` and `IPrintable` interfaces. I don't know what their vtables look like, though.
The `Platform::Type` and `Platform::Object` classes also have associated RTTI (can be demonstrated by calling `__RTtypeid`), which we'll also need to emit at some point in the future.
--
v2: vccorlib140: Use the correct symbol name for InitControlBlock on i386 and arm.
vccorlib140: Implement Platform::Details::CreateValue.
vccorlib140: Add stub for Platform::Details::CreateValue.
vccorlib140: Implement Platform::Type::{Equals, GetTypeCode, ToString, FullName::get}.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8831
C++/CX exposes `IPropertyValue` through `Platform::Details::CreateValue`, which returns a `Platform::Object` (which just seems to be a `IPropertyValue` object + C++ RTTI) containing the boxed value.
Apps don't seem to call `CreateValue` directly with a typecode. The code for boxing values gets generated when a value type gets assigned to a `Platform::Object` variable, as documented [here.](https://learn.microsoft.com/en-us/cpp/extensions/boxing-cpp-componen… The generated code will:
1. Call `__abi_make_type_id` with a `struct __abi_type_descriptor *` value, which is just a typecode + string pair. This returns a `Platform::Type` object.
2. Call `Platform::Type::GetTypeCode` on the returned `Platform::Type` object to get back the typecode.
3. Call `Platform::Details::CreateValue` with the typecode and a pointer to the actual value that needs to be boxed.
The `Platform::Type` and `Platform::Object` objects returned also have associated RTTI (can be demonstrated by calling `__RTtypeid`), which we'll also need to emit at some point in the future.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8831
comctl32/treeview: Return from TREEVIEW_LButtonDown when the treeview handle is invalid.
LButtonDown should return when the treeview handle is invalid (e.g. destroyed) after NM_CLICK to prevent further message processing.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58211
--
v11: comctl32/treeview: Return from TREEVIEW_LButtonDown when the treeview handle is invalid.
comctl32/tests: Add a test for treeview deletion during NM_CLICK in LBUTTONDOWN.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8258
Using #ifdef to selectively register runtimeclasses from the public IDLs isn't going to work out, this implements explicit class registration instead.
For now we are missing a possible useful check in widl to make sure the referenced class is defined, this will be added later on after all modules are made explicit.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8830
Building from wine/fontforge repo fails for me, after fixing some errors in fontforge code, it still fails when pointed to similarly old freetype source tree (current tree has some internal headers moved, and fontforge uses those). That's why ttf is not updated.
Image of the issue:

--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8828
This pull request fixes Wine's MIDI synthesizer reset process to be the same as Windows'.
When playing Touhou Project games in MIDI BGM mode, the music playback becomes buggy when the BGM changes.
The video below is an example of an anomaly that occurs when playing The Fantastic Tales from Tono after playing Crystallized Silver in Touhou 7.
https://youtu.be/O69sndJ45Ag
Here's a correct example of The Fantastic Tales from Tono playback:
https://youtu.be/XlFAQEbbNDg
Piano sound is clearly missing on Wine.
This issue occurs due to an Wine's incorrect reset process for MIDI synthesizer.
When I ran FluidSynth on Windows and checked the log, I found that CC123 and CC121 were executed for each MIDI channel when switching songs.
CC123 means All Notes Off, CC121 means Reset All Controllers.
--
v8: wineoss: Send All Notes Off and Reset Controllers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8808
--
v2: opengl32: Redirect default framebuffer when using FBO surfaces.
opengl32: Remap read / draw FBO buffers when using FBO surfaces.
opengl32: Return the tracked FBO buffers when using FBO surfaces.
opengl32: Keep track of default FBO read/draw buffers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8827