-- v2: wshom/network: Check pointer argument in get_UserName(). wshom/network: Implement ComputerName() property.
From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/wshom.ocx/network.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/wshom.ocx/network.c b/dlls/wshom.ocx/network.c index 42ed61ffe01..fd022f14045 100644 --- a/dlls/wshom.ocx/network.c +++ b/dlls/wshom.ocx/network.c @@ -258,7 +258,7 @@ static IWshNetwork2 WshNetwork2 = { &WshNetwork2Vtbl };
HRESULT WINAPI WshNetworkFactory_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **ppv) { - FIXME("(%p %s %p)\n", outer, debugstr_guid(riid), ppv); + TRACE("%p, %s, %p.\n", outer, debugstr_guid(riid), ppv);
return IWshNetwork2_QueryInterface(&WshNetwork2, riid, ppv); }
From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/wshom.ocx/network.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/wshom.ocx/network.c b/dlls/wshom.ocx/network.c index fd022f14045..86c68ff8830 100644 --- a/dlls/wshom.ocx/network.c +++ b/dlls/wshom.ocx/network.c @@ -69,8 +69,9 @@ static HRESULT WINAPI WshNetwork2_GetTypeInfoCount(IWshNetwork2 *iface, UINT *pc
static HRESULT WINAPI WshNetwork2_GetTypeInfo(IWshNetwork2 *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) { - FIXME("%p, %u, %lx, %p.\n", iface, iTInfo, lcid, ppTInfo); - return E_NOTIMPL; + TRACE("%p, %u, %lx, %p.\n", iface, iTInfo, lcid, ppTInfo); + + return get_typeinfo(IWshNetwork2_tid, ppTInfo); }
static HRESULT WINAPI WshNetwork2_GetIDsOfNames(IWshNetwork2 *iface, REFIID riid, LPOLESTR *rgszNames,
From: Nikolay Sivov nsivov@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56434 Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/wshom.ocx/network.c | 27 ++++++++++++++++++++++++--- dlls/wshom.ocx/tests/wshom.c | 29 ++++++++++++++++++++++++----- 2 files changed, 48 insertions(+), 8 deletions(-)
diff --git a/dlls/wshom.ocx/network.c b/dlls/wshom.ocx/network.c index 86c68ff8830..ef7f5e52808 100644 --- a/dlls/wshom.ocx/network.c +++ b/dlls/wshom.ocx/network.c @@ -124,7 +124,7 @@ static HRESULT WINAPI WshNetwork2_get_UserName(IWshNetwork2 *iface, BSTR *user_n BOOL ret; DWORD len = 0;
- TRACE("%p\n", user_name); + TRACE("%p, %p.\n", iface, user_name);
GetUserNameW(NULL, &len); *user_name = SysAllocStringLen(NULL, len-1); @@ -151,9 +151,30 @@ static HRESULT WINAPI WshNetwork2_get_UserProfile(IWshNetwork2 *iface, BSTR *use
static HRESULT WINAPI WshNetwork2_get_ComputerName(IWshNetwork2 *iface, BSTR *name) { - FIXME("%p stub\n", name); + HRESULT hr = S_OK; + DWORD len = 0; + BOOL ret;
- return E_NOTIMPL; + TRACE("%p, %p.\n", iface, name); + + if (!name) + return E_POINTER; + + GetComputerNameW(NULL, &len); + *name = SysAllocStringLen(NULL, len - 1); + if (!*name) + return E_OUTOFMEMORY; + + ret = GetComputerNameW(*name, &len); + if (!ret) + { + hr = HRESULT_FROM_WIN32(GetLastError()); + SysFreeString(*name); + *name = NULL; + return hr; + } + + return S_OK; }
static HRESULT WINAPI WshNetwork2_get_Organization(IWshNetwork2 *iface, BSTR *name) diff --git a/dlls/wshom.ocx/tests/wshom.c b/dlls/wshom.ocx/tests/wshom.c index 5212dd83b5c..3e124b218c6 100644 --- a/dlls/wshom.ocx/tests/wshom.c +++ b/dlls/wshom.ocx/tests/wshom.c @@ -693,7 +693,7 @@ static void test_wshnetwork(void) { IDispatch *disp; IWshNetwork2 *nw2; - BSTR str,username; + BSTR str, name; HRESULT hr; DWORD len = 0; BOOL ret; @@ -717,13 +717,32 @@ static void test_wshnetwork(void) CHECK_BSTR_LENGTH(str); GetUserNameW(NULL, &len); ok(len > 0, "Unexpected len %ld.\n", len); - username = SysAllocStringLen(NULL, len-1); - ret = GetUserNameW(username, &len); + name = SysAllocStringLen(NULL, len-1); + ret = GetUserNameW(name, &len); ok(ret == TRUE, "GetUserNameW returned %d.\n", ret); - ok(!wcscmp(str,username), "user names do not match %s %s.\n", debugstr_w(str), debugstr_w(username)); - SysFreeString(username); + ok(!wcscmp(str, name), "User names do not match %s, %s.\n", debugstr_w(str), debugstr_w(name)); + SysFreeString(name); + SysFreeString(str); + + hr = IWshNetwork2_get_ComputerName(nw2, NULL); + ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr); + + str = NULL; + hr = IWshNetwork2_get_ComputerName(nw2, &str); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(str && str[0] != 0, "Got empty string.\n"); + CHECK_BSTR_LENGTH(str); + len = 0; + GetComputerNameW(NULL, &len); + ok(len > 0, "Unexpected length %ld.\n", len); + name = SysAllocStringLen(NULL, len - 1); + ret = GetComputerNameW(name, &len); + ok(ret, "GetComputerName() failed %ld.\n", GetLastError()); + ok(!wcscmp(str, name), "Computer names do not match %s, %s.\n", debugstr_w(str), debugstr_w(name)); + SysFreeString(name); SysFreeString(str);
+ IWshNetwork2_Release(nw2); IDispatch_Release(disp); }
From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/wshom.ocx/network.c | 3 +++ dlls/wshom.ocx/tests/wshom.c | 3 +++ 2 files changed, 6 insertions(+)
diff --git a/dlls/wshom.ocx/network.c b/dlls/wshom.ocx/network.c index ef7f5e52808..f2a88c2117f 100644 --- a/dlls/wshom.ocx/network.c +++ b/dlls/wshom.ocx/network.c @@ -126,6 +126,9 @@ static HRESULT WINAPI WshNetwork2_get_UserName(IWshNetwork2 *iface, BSTR *user_n
TRACE("%p, %p.\n", iface, user_name);
+ if (!user_name) + return E_POINTER; + GetUserNameW(NULL, &len); *user_name = SysAllocStringLen(NULL, len-1); if (!*user_name) diff --git a/dlls/wshom.ocx/tests/wshom.c b/dlls/wshom.ocx/tests/wshom.c index 3e124b218c6..ed0f4e186a3 100644 --- a/dlls/wshom.ocx/tests/wshom.c +++ b/dlls/wshom.ocx/tests/wshom.c @@ -710,6 +710,9 @@ static void test_wshnetwork(void) hr = IDispatch_QueryInterface(disp, &IID_IWshNetwork2, (void**)&nw2); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IWshNetwork2_get_UserName(nw2, NULL); + ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr); + str = NULL; hr = IWshNetwork2_get_UserName(nw2, &str); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=144071
Your paranoid android.
=== debian11b (64 bit WoW report) ===
d3dx10_34: d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 0000000001239F10. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011B5D90. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011B5F60. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011B5F60. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011B6130.
d3dx10_35: d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 0000000001230C40. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 0000000001230C40. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 0000000001239E20. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 0000000001195B10. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 0000000001230C40.
d3dx10_36: d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 00000000011E40E0. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011D1820. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011D19F0. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011D55F0. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011D57C0.
d3dx10_37: d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 00000000011D5900. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011D5900. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011E35D0. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011E37A0. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011E35D0.
d3dx10_38: d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 00000000011E3D90. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011E39A0. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011E39A0. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011B5D90. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011D4950.
d3dx10_39: d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 00000000011B6030. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011BCAB0. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011A4690. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011A4B40. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011958C0.
d3dx10_40: d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 00000000011D5600. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011D57D0. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011D59A0. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011D18F0. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011D1AC0.
d3dx10_41: d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 00000000011E3D80. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011E3C70. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011B5D90. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011B5F60. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011E3990.
d3dx10_42: d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 0000000001239CE0. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011B6010. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011B6010. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011B6010. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011B2160.
d3dx10_43: d3dx10.c:4380: Test succeeded inside todo block: Got unexpected effect 0000000001239E60. d3dx10.c:4470: Test succeeded inside todo block: Got unexpected effect 00000000011D3EE0. d3dx10.c:4480: Test succeeded inside todo block: Got unexpected effect 00000000011E39C0. d3dx10.c:4589: Test succeeded inside todo block: Got unexpected effect 00000000011C3A30. d3dx10.c:4599: Test succeeded inside todo block: Got unexpected effect 00000000011E8610.
msi: action: Timeout