From: Robert Wilhelm robert.wilhelm@gmx.net
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53971 --- dlls/wshom.ocx/network.c | 19 +++++++++++++++++-- dlls/wshom.ocx/tests/wshom.c | 14 ++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/dlls/wshom.ocx/network.c b/dlls/wshom.ocx/network.c index c33f4347762..b25230e6f24 100644 --- a/dlls/wshom.ocx/network.c +++ b/dlls/wshom.ocx/network.c @@ -120,9 +120,24 @@ static HRESULT WINAPI WshNetwork2_get_UserDomain(IWshNetwork2 *iface, BSTR *user
static HRESULT WINAPI WshNetwork2_get_UserName(IWshNetwork2 *iface, BSTR *user_name) { - FIXME("%p stub\n", user_name); + BOOL ret; + DWORD len = 0;
- return E_NOTIMPL; + TRACE("%p\n", user_name); + + GetUserNameW(NULL, &len); + *user_name = SysAllocStringLen(NULL, len-1); + if (!*user_name) + return E_OUTOFMEMORY; + + ret = GetUserNameW(*user_name, &len); + if (!ret) { + SysFreeString(*user_name); + *user_name = NULL; + return HRESULT_FROM_WIN32(GetLastError()); + } + + return S_OK; }
static HRESULT WINAPI WshNetwork2_get_UserProfile(IWshNetwork2 *iface, BSTR *user_profile) diff --git a/dlls/wshom.ocx/tests/wshom.c b/dlls/wshom.ocx/tests/wshom.c index 5b3b7f81720..279bb524c7d 100644 --- a/dlls/wshom.ocx/tests/wshom.c +++ b/dlls/wshom.ocx/tests/wshom.c @@ -692,6 +692,8 @@ static void test_popup(void) static void test_wshnetwork(void) { IDispatch *disp; + IWshNetwork2 *nw2; + BSTR str; HRESULT hr;
hr = CoCreateInstance(&CLSID_WshNetwork, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER, @@ -704,6 +706,18 @@ static void test_wshnetwork(void) check_interface(disp, &IID_IObjectWithSite, FALSE);
IDispatch_Release(disp); + + hr = CoCreateInstance(&CLSID_WshNetwork, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER, + &IID_IDispatch, (void**)&nw2); + + str = NULL; + hr = IWshNetwork2_get_UserName(nw2, &str); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(str && str[0] != 0, "got empty string\n"); + CHECK_BSTR_LENGTH(str); + SysFreeString(str); + + IWshNetwork2_Release(nw2); }
START_TEST(wshom)