Dmitry Timoshkov : activeds: Implement some simple cases for IADsPathname::Retrieve().
Alexandre Julliard
julliard at winehq.org
Fri Apr 10 13:56:08 CDT 2020
Module: wine
Branch: master
Commit: 03e3800d89663c6d6a16c9d26a3ee07d11b8a8c0
URL: https://source.winehq.org/git/wine.git/?a=commit;h=03e3800d89663c6d6a16c9d26a3ee07d11b8a8c0
Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date: Fri Apr 10 15:34:29 2020 +0800
activeds: Implement some simple cases for IADsPathname::Retrieve().
Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/activeds/pathname.c | 16 ++++++++++++++--
dlls/activeds/tests/activeds.c | 2 --
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/dlls/activeds/pathname.c b/dlls/activeds/pathname.c
index 3a1d9e8c16..d89c4cb847 100644
--- a/dlls/activeds/pathname.c
+++ b/dlls/activeds/pathname.c
@@ -252,7 +252,7 @@ static HRESULT WINAPI path_Retrieve(IADsPathname *iface, LONG type, BSTR *adspat
if (path->dn) len += wcslen(path->dn);
*adspath = SysAllocStringLen(NULL, len);
- if (!*adspath) return E_OUTOFMEMORY;
+ if (!*adspath) break;
wcscpy(*adspath, path->provider);
wcscat(*adspath, L"://");
@@ -263,10 +263,22 @@ static HRESULT WINAPI path_Retrieve(IADsPathname *iface, LONG type, BSTR *adspat
}
if (path->dn) wcscat(*adspath, path->dn);
break;
+
+ case ADS_FORMAT_PROVIDER:
+ *adspath = SysAllocString(path->provider);
+ break;
+
+ case ADS_FORMAT_SERVER:
+ *adspath = path->provider ? SysAllocString(path->server) : SysAllocStringLen(NULL, 0);
+ break;
+
+ case ADS_FORMAT_X500_DN:
+ *adspath = path->dn ? SysAllocString(path->dn) : SysAllocStringLen(NULL, 0);
+ break;
}
TRACE("=> %s\n", debugstr_w(*adspath));
- return S_OK;
+ return *adspath ? S_OK : E_OUTOFMEMORY;
}
static HRESULT WINAPI path_GetNumElements(IADsPathname *iface, LONG *count)
diff --git a/dlls/activeds/tests/activeds.c b/dlls/activeds/tests/activeds.c
index 6e5ecdf573..9ecab56034 100644
--- a/dlls/activeds/tests/activeds.c
+++ b/dlls/activeds/tests/activeds.c
@@ -151,13 +151,11 @@ todo_wine
hr = IADsPathname_Retrieve(path, ADS_FORMAT_PROVIDER, &bstr);
ok(hr == S_OK, "got %#x\n", hr);
-todo_wine
ok(!wcscmp(bstr, L"LDAP"), "got %s\n", wine_dbgstr_w(bstr));
SysFreeString(bstr);
hr = IADsPathname_Retrieve(path, ADS_FORMAT_SERVER, &bstr);
ok(hr == S_OK, "got %#x\n", hr);
-todo_wine
ok(!wcscmp(bstr, L"sample:123"), "got %s\n", wine_dbgstr_w(bstr));
SysFreeString(bstr);
More information about the wine-cvs
mailing list