Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/ole32/antimoniker.c | 10 ++++------ dlls/ole32/tests/moniker.c | 8 ++------ 2 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/dlls/ole32/antimoniker.c b/dlls/ole32/antimoniker.c index 7abbfc544f..c0937a8d90 100644 --- a/dlls/ole32/antimoniker.c +++ b/dlls/ole32/antimoniker.c @@ -81,19 +81,19 @@ AntiMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject)
TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject);
- /* Perform a sanity check on the parameters.*/ if ( ppvObject==0 ) return E_INVALIDARG;
- /* Initialize the return parameter */ *ppvObject = 0;
- /* Compare the riid with the interface IDs implemented by this object.*/ if (IsEqualIID(&IID_IUnknown, riid) || IsEqualIID(&IID_IPersist, riid) || IsEqualIID(&IID_IPersistStream, riid) || - IsEqualIID(&IID_IMoniker, riid)) + IsEqualIID(&IID_IMoniker, riid) || + IsEqualGUID(&CLSID_AntiMoniker, riid)) + { *ppvObject = iface; + } else if (IsEqualIID(&IID_IROTData, riid)) *ppvObject = &This->IROTData_iface; else if (IsEqualIID(&IID_IMarshal, riid)) @@ -106,11 +106,9 @@ AntiMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject) return IUnknown_QueryInterface(This->pMarshal, riid, ppvObject); }
- /* Check that we obtained an interface.*/ if ((*ppvObject)==0) return E_NOINTERFACE;
- /* always increase the reference count by one when it is successful */ IMoniker_AddRef(iface);
return S_OK; diff --git a/dlls/ole32/tests/moniker.c b/dlls/ole32/tests/moniker.c index 7e7d615645..3dd7048ef4 100644 --- a/dlls/ole32/tests/moniker.c +++ b/dlls/ole32/tests/moniker.c @@ -2454,13 +2454,9 @@ static void test_anti_moniker(void) ok_ole_success(hr, CreateAntiMoniker);
hr = IMoniker_QueryInterface(moniker, &CLSID_AntiMoniker, (void **)&unknown); -todo_wine ok(hr == S_OK, "Unexpected hr %#x.\n", hr); - if (SUCCEEDED(hr)) - { - ok(unknown == (IUnknown *)moniker, "Unexpected interface.\n"); - IUnknown_Release(unknown); - } + ok(unknown == (IUnknown *)moniker, "Unexpected interface.\n"); + IUnknown_Release(unknown);
test_moniker("anti moniker", moniker, expected_anti_moniker_marshal_data, sizeof(expected_anti_moniker_marshal_data),
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/ole32/pointermoniker.c | 3 ++- dlls/ole32/tests/moniker.c | 9 ++------- 2 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/dlls/ole32/pointermoniker.c b/dlls/ole32/pointermoniker.c index 2ece11f53b..34692c4965 100644 --- a/dlls/ole32/pointermoniker.c +++ b/dlls/ole32/pointermoniker.c @@ -74,7 +74,8 @@ static HRESULT WINAPI PointerMonikerImpl_QueryInterface(IMoniker *iface, REFIID if (IsEqualIID(&IID_IUnknown, riid) || IsEqualIID(&IID_IPersist, riid) || IsEqualIID(&IID_IPersistStream, riid) || - IsEqualIID(&IID_IMoniker, riid)) + IsEqualIID(&IID_IMoniker, riid) || + IsEqualGUID(&CLSID_PointerMoniker, riid)) { *ppvObject = iface; } diff --git a/dlls/ole32/tests/moniker.c b/dlls/ole32/tests/moniker.c index 3dd7048ef4..0e6eaff57b 100644 --- a/dlls/ole32/tests/moniker.c +++ b/dlls/ole32/tests/moniker.c @@ -2886,13 +2886,8 @@ static void test_pointer_moniker(void) ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
hr = IMoniker_QueryInterface(moniker, &CLSID_PointerMoniker, (void **)&unknown); -todo_wine - ok(hr == S_OK, "Unexpected hr %#x.\n", hr); - if (SUCCEEDED(hr)) - { - ok(unknown == (IUnknown *)moniker, "Unexpected interface.\n"); - IUnknown_Release(unknown); - } + ok(unknown == (IUnknown *)moniker, "Unexpected interface.\n"); + IUnknown_Release(unknown);
hr = IMoniker_QueryInterface(moniker, &IID_IMarshal, (void **)&marshal); ok(hr == S_OK, "Failed to get interface, hr %#x.\n", hr);
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=64253
Your paranoid android.
=== debian10 (64 bit WoW report) ===
ole32: clipboard.c:1529: Test failed: gle 5 clipboard.c:1531: Test failed: gle 1418 clipboard.c:1533: Test failed: gle 1418 clipboard.c:1541: Test failed: got 800401d0 Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x004069b5).
Report errors: ole32:clipboard crashed (c0000005)
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/ole32/classmoniker.c | 12 ++++-------- dlls/ole32/tests/moniker.c | 8 ++------ 2 files changed, 6 insertions(+), 14 deletions(-)
diff --git a/dlls/ole32/classmoniker.c b/dlls/ole32/classmoniker.c index 07d55e2f94..86d954a9c9 100644 --- a/dlls/ole32/classmoniker.c +++ b/dlls/ole32/classmoniker.c @@ -60,24 +60,22 @@ static inline ClassMoniker *impl_from_IROTData(IROTData *iface) /******************************************************************************* * ClassMoniker_QueryInterface *******************************************************************************/ -static HRESULT WINAPI ClassMoniker_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject) +static HRESULT WINAPI ClassMoniker_QueryInterface(IMoniker *iface, REFIID riid, void **ppvObject) { ClassMoniker *This = impl_from_IMoniker(iface);
- TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject); + TRACE("%p, %s, %p.\n", iface, debugstr_guid(riid), ppvObject);
- /* Perform a sanity check on the parameters.*/ if (!ppvObject) return E_POINTER;
- /* Initialize the return parameter */ *ppvObject = 0;
- /* Compare the riid with the interface IDs implemented by this object.*/ if (IsEqualIID(&IID_IUnknown, riid) || IsEqualIID(&IID_IPersist, riid) || IsEqualIID(&IID_IPersistStream, riid) || - IsEqualIID(&IID_IMoniker, riid)) + IsEqualIID(&IID_IMoniker, riid) || + IsEqualGUID(&CLSID_ClassMoniker, riid)) { *ppvObject = iface; } @@ -93,11 +91,9 @@ static HRESULT WINAPI ClassMoniker_QueryInterface(IMoniker* iface,REFIID riid,vo return IUnknown_QueryInterface(This->pMarshal, riid, ppvObject); }
- /* Check that we obtained an interface.*/ if (!*ppvObject) return E_NOINTERFACE;
- /* Query Interface always increases the reference count by one when it is successful */ IMoniker_AddRef(iface);
return S_OK; diff --git a/dlls/ole32/tests/moniker.c b/dlls/ole32/tests/moniker.c index 0e6eaff57b..e0a87e0701 100644 --- a/dlls/ole32/tests/moniker.c +++ b/dlls/ole32/tests/moniker.c @@ -1773,13 +1773,9 @@ static void test_class_moniker(void) ok_ole_success(hr, CreateClassMoniker);
hr = IMoniker_QueryInterface(moniker, &CLSID_ClassMoniker, (void **)&unknown); -todo_wine ok(hr == S_OK, "Unexpected hr %#x.\n", hr); - if (SUCCEEDED(hr)) - { - ok(unknown == (IUnknown *)moniker, "Unexpected interface.\n"); - IUnknown_Release(unknown); - } + ok(unknown == (IUnknown *)moniker, "Unexpected interface.\n"); + IUnknown_Release(unknown);
test_moniker("class moniker", moniker, expected_class_moniker_marshal_data, sizeof(expected_class_moniker_marshal_data),
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/ole32/filemoniker.c | 21 ++++++++------------- dlls/ole32/tests/moniker.c | 8 ++------ 2 files changed, 10 insertions(+), 19 deletions(-)
diff --git a/dlls/ole32/filemoniker.c b/dlls/ole32/filemoniker.c index 6310a5acd5..e5978169ca 100644 --- a/dlls/ole32/filemoniker.c +++ b/dlls/ole32/filemoniker.c @@ -64,28 +64,25 @@ static HRESULT FileMonikerImpl_Destroy(FileMonikerImpl* iface); /******************************************************************************* * FileMoniker_QueryInterface */ -static HRESULT WINAPI -FileMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject) +static HRESULT WINAPI FileMonikerImpl_QueryInterface(IMoniker *iface, REFIID riid, void **ppvObject) { FileMonikerImpl *This = impl_from_IMoniker(iface);
- TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject); + TRACE("%p, %s, %p.\n", iface, debugstr_guid(riid), ppvObject);
- /* Perform a sanity check on the parameters.*/ - if ( ppvObject==0 ) + if (!ppvObject) return E_INVALIDARG;
- /* Initialize the return parameter */ *ppvObject = 0;
- /* Compare the riid with the interface IDs implemented by this object.*/ if (IsEqualIID(&IID_IUnknown, riid) || IsEqualIID(&IID_IPersist, riid) || IsEqualIID(&IID_IPersistStream,riid) || - IsEqualIID(&IID_IMoniker, riid) - ) + IsEqualIID(&IID_IMoniker, riid) || + IsEqualGUID(&CLSID_FileMoniker, riid)) + { *ppvObject = iface; - + } else if (IsEqualIID(&IID_IROTData, riid)) *ppvObject = &This->IROTData_iface; else if (IsEqualIID(&IID_IMarshal, riid)) @@ -98,11 +95,9 @@ FileMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject) return IUnknown_QueryInterface(This->pMarshal, riid, ppvObject); }
- /* Check that we obtained an interface.*/ - if ((*ppvObject)==0) + if (!*ppvObject) return E_NOINTERFACE;
- /* Query Interface always increases the reference count by one when it is successful */ IMoniker_AddRef(iface);
return S_OK; diff --git a/dlls/ole32/tests/moniker.c b/dlls/ole32/tests/moniker.c index e0a87e0701..b22cf84946 100644 --- a/dlls/ole32/tests/moniker.c +++ b/dlls/ole32/tests/moniker.c @@ -1877,13 +1877,9 @@ static void test_file_moniker(WCHAR* path) ok_ole_success(hr, CreateFileMoniker);
hr = IMoniker_QueryInterface(moniker1, &CLSID_FileMoniker, (void **)&unk); -todo_wine ok(hr == S_OK, "Unexpected hr %#x.\n", hr); - if (SUCCEEDED(hr)) - { - ok(unk == (IUnknown *)moniker1, "Unexpected interface.\n"); - IUnknown_Release(unk); - } + ok(unk == (IUnknown *)moniker1, "Unexpected interface.\n"); + IUnknown_Release(unk);
hr = IMoniker_Inverse(moniker1, &inverse); ok(hr == S_OK, "Failed to get inverse, hr %#x.\n", hr);
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/ole32/itemmoniker.c | 10 ++++++---- dlls/ole32/tests/moniker.c | 8 ++------ 2 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/dlls/ole32/itemmoniker.c b/dlls/ole32/itemmoniker.c index 78b23ae633..dee4fc0bf2 100644 --- a/dlls/ole32/itemmoniker.c +++ b/dlls/ole32/itemmoniker.c @@ -140,21 +140,23 @@ static HRESULT set_container_lock(IOleItemContainer *container, IBindCtx *pbc) /******************************************************************************* * ItemMoniker_QueryInterface *******************************************************************************/ -static HRESULT WINAPI ItemMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject) +static HRESULT WINAPI ItemMonikerImpl_QueryInterface(IMoniker *iface, REFIID riid, void **ppvObject) { ItemMonikerImpl *This = impl_from_IMoniker(iface);
- TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject); + TRACE("%p, %s, %p.\n", iface, debugstr_guid(riid), ppvObject);
if (!ppvObject) return E_INVALIDARG;
- /* Compare the riid with the interface IDs implemented by this object.*/ if (IsEqualIID(&IID_IUnknown, riid) || IsEqualIID(&IID_IPersist, riid) || IsEqualIID(&IID_IPersistStream, riid) || - IsEqualIID(&IID_IMoniker, riid)) + IsEqualIID(&IID_IMoniker, riid) || + IsEqualGUID(&CLSID_ItemMoniker, riid)) + { *ppvObject = iface; + } else if (IsEqualIID(&IID_IROTData, riid)) *ppvObject = &This->IROTData_iface; else if (IsEqualIID(&IID_IMarshal, riid)) diff --git a/dlls/ole32/tests/moniker.c b/dlls/ole32/tests/moniker.c index b22cf84946..d485360215 100644 --- a/dlls/ole32/tests/moniker.c +++ b/dlls/ole32/tests/moniker.c @@ -2087,13 +2087,9 @@ static void test_item_moniker(void) ok(hr == S_OK, "Failed to create item moniker, hr %#x.\n", hr);
hr = IMoniker_QueryInterface(moniker, &CLSID_ItemMoniker, (void **)&unknown); -todo_wine ok(hr == S_OK, "Unexpected hr %#x.\n", hr); - if (SUCCEEDED(hr)) - { - ok(unknown == (IUnknown *)moniker, "Unexpected interface.\n"); - IUnknown_Release(unknown); - } + ok(unknown == (IUnknown *)moniker, "Unexpected interface.\n"); + IUnknown_Release(unknown);
test_moniker("item moniker 2", moniker, expected_item_moniker_marshal_data2, sizeof(expected_item_moniker_marshal_data2),