activeds: Implement some simple cases for IADsPathname::Retrieve().
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
29967463ad
commit
03e3800d89
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue