adsldp: Implement IParseDisplayName::ParseDisplayName.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
af92668b23
commit
631813bf1a
|
@ -101,8 +101,28 @@ static ULONG WINAPI ldap_Release(IParseDisplayName *iface)
|
||||||
static HRESULT WINAPI ldap_ParseDisplayName(IParseDisplayName *iface, IBindCtx *bc,
|
static HRESULT WINAPI ldap_ParseDisplayName(IParseDisplayName *iface, IBindCtx *bc,
|
||||||
LPOLESTR name, ULONG *eaten, IMoniker **mk)
|
LPOLESTR name, ULONG *eaten, IMoniker **mk)
|
||||||
{
|
{
|
||||||
FIXME("%p,%p,%s,%p,%p: stub\n", iface, bc, debugstr_w(name), eaten, mk);
|
HRESULT hr;
|
||||||
return E_NOTIMPL;
|
IADsOpenDSObject *ads_open;
|
||||||
|
IDispatch *disp;
|
||||||
|
|
||||||
|
TRACE("%p,%p,%s,%p,%p\n", iface, bc, debugstr_w(name), eaten, mk);
|
||||||
|
|
||||||
|
hr = LDAPNamespace_create(&IID_IADsOpenDSObject, (void **)&ads_open);
|
||||||
|
if (hr != S_OK) return hr;
|
||||||
|
|
||||||
|
hr = IADsOpenDSObject_OpenDSObject(ads_open, name, NULL, NULL, ADS_SECURE_AUTHENTICATION, &disp);
|
||||||
|
if (hr == S_OK)
|
||||||
|
{
|
||||||
|
hr = CreatePointerMoniker((IUnknown *)disp, mk);
|
||||||
|
if (hr == S_OK)
|
||||||
|
*eaten = wcslen(name);
|
||||||
|
|
||||||
|
IDispatch_Release(disp);
|
||||||
|
}
|
||||||
|
|
||||||
|
IADsOpenDSObject_Release(ads_open);
|
||||||
|
|
||||||
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const IParseDisplayNameVtbl LDAP_PARSE_vtbl =
|
static const IParseDisplayNameVtbl LDAP_PARSE_vtbl =
|
||||||
|
|
|
@ -122,7 +122,6 @@ static void test_ParseDisplayName(void)
|
||||||
|
|
||||||
count = 0xdeadbeef;
|
count = 0xdeadbeef;
|
||||||
hr = IParseDisplayName_ParseDisplayName(parse, bc, path, &count, &mk);
|
hr = IParseDisplayName_ParseDisplayName(parse, bc, path, &count, &mk);
|
||||||
todo_wine
|
|
||||||
ok(hr == test[i].hr || hr == test[i].hr_ads_open, "%d: got %#x, expected %#x\n", i, hr, test[i].hr);
|
ok(hr == test[i].hr || hr == test[i].hr_ads_open, "%d: got %#x, expected %#x\n", i, hr, test[i].hr);
|
||||||
if (hr == S_OK)
|
if (hr == S_OK)
|
||||||
{
|
{
|
||||||
|
@ -139,7 +138,7 @@ todo_wine
|
||||||
|
|
||||||
count = 0xdeadbeef;
|
count = 0xdeadbeef;
|
||||||
hr = MkParseDisplayName(bc, test[i].path, &count, &mk);
|
hr = MkParseDisplayName(bc, test[i].path, &count, &mk);
|
||||||
todo_wine
|
todo_wine_if(i == 0 || i == 1 || i == 11 || i == 12)
|
||||||
ok(hr == test[i].hr, "%d: got %#x, expected %#x\n", i, hr, test[i].hr);
|
ok(hr == test[i].hr, "%d: got %#x, expected %#x\n", i, hr, test[i].hr);
|
||||||
if (hr == S_OK)
|
if (hr == S_OK)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue