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,
|
||||
LPOLESTR name, ULONG *eaten, IMoniker **mk)
|
||||
{
|
||||
FIXME("%p,%p,%s,%p,%p: stub\n", iface, bc, debugstr_w(name), eaten, mk);
|
||||
return E_NOTIMPL;
|
||||
HRESULT hr;
|
||||
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 =
|
||||
|
|
|
@ -122,7 +122,6 @@ static void test_ParseDisplayName(void)
|
|||
|
||||
count = 0xdeadbeef;
|
||||
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);
|
||||
if (hr == S_OK)
|
||||
{
|
||||
|
@ -139,7 +138,7 @@ todo_wine
|
|||
|
||||
count = 0xdeadbeef;
|
||||
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);
|
||||
if (hr == S_OK)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue