Re: IRandomAccessStream doesn't belong in windows.storage

Nikolay Sivov <[email protected]> Wed, 21 May 2025 10:41:30 +0200
Newsgroups gmane.comp.emulators.wine.devel
Message-ID <CAG4Z_JJaTi00jg12xd2Huh6FXV-GxLFb6eT=Kr7fngWf9vehVg@mail.gmail.com>
On Wed, May 21, 2025 at 10:37 AM light gray <[email protected]> wrote:

> That's quite puzzling because in W11 24H2 it's shcore.dll instead.
> [image: image.png]
> Even if W10 22H2 has it as `windows.storage.dll` I think it's still better
> to implement it in shcore.dll instead because of the
> `CreateRandomAccessStream..` functions.
>

Once we need those functions I think we could move it, to be able to create
this object directly or through activation.
But if we don't need them, it doesn't matter where it is.



>
> On Wed, 21 May 2025 at 11:56, Rémi Bernon <[email protected]> wrote:
>
>> On 5/21/25 10:18, light gray wrote:
>> > Hi devs!
>> >
>> > I've recently noticed that there's a new `windows.storage` WinRT library
>> > within Wine, and the library houses a stubbed implementation for
>> > `IRandomAccessStream`.
>> > There's an issue however. Looking at Windows registry keys to see which
>> > libraries register which runtime classes, it appears `shcore` houses the
>> > implementation for `IRandomAccessStream`. Not `windows.storage`.
>> > While inherently this isn't a problem since applications acquire runtime
>> > classes via `RoGetActivationFactory`, this could pose an issue later
>> down
>> > the line when more WinRT interfaces get implemented within Wine. Mainly
>> > with how different classes are registered at compile time. Not only
>> that,
>> > it would also make implementing functions such as
>> > `CreateRandomAccessStreamOnFile` a bit more complicated.
>> > As a reference, the following is my own experimental implementation of
>> > `IRandomAccessStream`:
>> >
>> https://github.com/Weather-OS/WineCoreUAP/commit/318d3b8ecb036f04dcf6365235ac1c123dbafb1c
>> >
>> > Best wishes, Weather.
>> >
>>
>> In the Windows version I have been checking with (W10 22H2 or something
>> like that), Windows.Storage.Streams.RandomAccessStream runtime class is
>> registered from windows.storage.dll.
>>
>> There has been other instances where the classes are moved around, I
>> think we can assume it does not really matter.
>>
>> --
>> Rémi Bernon <[email protected]>
>>
>>
>>
>
>
image.png (image/png, 22.7 KB) - not displayed