These stub implementations enable Dorico to successfully boot. They don't implement any real rendering or linkings to rendering contexts, they just create various interfaces with methods returning E_NOTIMPL. Notably, the `CompositionDevice` family has some interesting inheritance relations: * `IDCompositionDevice` inherits from `IUnknown` * `IDCompositionDevice2` also inherits from `IUnknown`, rather than `IDCompositionDevice` * `IDCompositionDesktopDevice` and `IDCompositionDevice3` both inherit from `IDCompositionDevice2`, rather than one inheriting from the other This means that a implementation of these needs to provide separate interfaces for at least `IDCompositionDevice` , `IDCompositionDesktopDevice` and `IDCompositionDevice3` . This MR also provides an 'implementation' for `IDCompositionDevice2` . The three commits here are: * Implement bare minimum of the `DCompositionCreateDevice` and `DCompositionCreateDevice2` to get Dorico to boot, ie. return the appropriate interfaces from those functions, which do nothing expect for some additional allocation functions, such as `IDCompositionDevice:CreateTargetForHwnd` . * Implement rest of `DCompositionCreateDevice`, `DCompositionCreateDevice2` and `DCompositionCreateDevice3`, and use shared 1implementations' for all of the related interfaces * Return fake S_OK responses from `IDCompositionDevice:Commit`, `IDCompositionTarget:SetRoot` and `IDCompositionVisual:SetContent` -- Dorico has one tool window where the software actually checks the response codes from all of these, and if any of these return E_NOTIMPL the entire software crashes. These prevent the crash, but the window in question will be rendered completely white. This is my first contribution for Wine, if there's some weird code it's most likely because of me, and not Microsoft. I don't have a bug for Dorico because the installer seems to require half of the internet through winetricks, but I believe this Cubase bug is caused by the same code: https://bugs.winehq.org/show_bug.cgi?id=57680 -- which I couldn't verify because the installers for Cubase currently don't seem work under Wine. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9839