On Fri Sep 8 06:44:32 2023 +0000, Mohamad Al-Jaf wrote:
> I've removed it, seems like it's not really necessary to test for it.
> Though, I don't understand why Office queries for `IAgileObject`. It's a
> Microsoft program so they should know it's not supported. Minecraft also
> queries for an interface that returns `E_NOINTERFACE`, it seems bizarre.
You should still remove the `broken(...)` condition, it will otherwise let every test succeed silently on Windows.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3672#note_44665
On Fri Sep 8 06:50:30 2023 +0000, Henri Verbeet wrote:
> At first sight this looks fine, thanks. Unfortunately I probably won't
> be able to properly review this this week, but I should be able to get
> to it early next week.
> Note that this currently fails the CI though. Probably because it's
> intended to be applied on top of !325, so hopefully that will get
> resolved once those patches actually get committed.
It still fails CI after !325 was merged (and even before - as it was based on top of !325, those commits were part of this branch so testing would just have iterated over those too) - not quite sure what is wrong here...
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/332#note_44664
On Thu Sep 7 13:49:19 2023 +0000, Rémi Bernon wrote:
> I missed this before, but I think the check_interface check is a bit
> pointless as it will always succeed on Windows.
> Something like that would be better (using `check_interface_broken` only
> where it is needed):
> ```suggestion:-14+0
> #define check_interface_broken( obj, iid, supported ) check_interface_(
> __LINE__, obj, iid, supported, TRUE )
> #define check_interface( obj, iid, supported ) check_interface_(
> __LINE__, obj, iid, supported, FALSE )
> static void check_interface_( unsigned int line, void *obj, const IID
> *iid, BOOL supported, BOOL is_broken )
> {
> HRESULT hr, expected_hr, broken_hr;
> IUnknown *iface = obj;
> IUnknown *unk;
> expected_hr = supported ? S_OK : E_NOINTERFACE;
> broken_hr = supported ? E_NOINTERFACE : S_OK;
> hr = IUnknown_QueryInterface( iface, iid, (void **)&unk );
> ok_(__FILE__, line)( hr == expected_hr || broken( is_broken && hr ==
> broken_hr ), "got hr %#lx.\n", hr );
> if (SUCCEEDED(hr)) IUnknown_Release( unk );
> }
> ```
> Or, maybe even better, use the basic `check_interface`, without the
> broken result and remove the broken check for IAgileObject interface
> which probably doesn't really matter on the factory.
I've removed it, seems like it's not really necessary to test for it. Though, I don't understand why Office queries for `IAgileObject`. It's a Microsoft program so they should know it's not supported. Minecraft also queries for an interface that returns `E_NOINTERFACE`, it seems bizarre.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3672#note_44663