diff --git a/dlls/activeds/activeds_main.c b/dlls/activeds/activeds_main.c index c997cab9129..564acab93e4 100644 --- a/dlls/activeds/activeds_main.c +++ b/dlls/activeds/activeds_main.c @@ -127,10 +127,10 @@ HRESULT WINAPI ADsOpenObject(LPCWSTR path, LPCWSTR user, LPCWSTR password, DWORD if (!path || !riid || !obj) return E_INVALIDARG; - if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\ADs\\Providers", 0, KEY_READ, &hkey)) - return E_ADS_BAD_PATHNAME; + hr = E_FAIL; - hr = E_ADS_BAD_PATHNAME; + if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\ADs\\Providers", 0, KEY_READ, &hkey)) + return hr; for (;;) { diff --git a/dlls/adsldp/tests/Makefile.in b/dlls/adsldp/tests/Makefile.in index 52141139d55..26b937aa684 100644 --- a/dlls/adsldp/tests/Makefile.in +++ b/dlls/adsldp/tests/Makefile.in @@ -1,5 +1,5 @@ TESTDLL = adsldp.dll -IMPORTS = ole32 oleaut32 secur32 advapi32 uuid +IMPORTS = ole32 oleaut32 secur32 advapi32 activeds uuid C_SRCS = \ ldap.c \ diff --git a/dlls/adsldp/tests/ldap.c b/dlls/adsldp/tests/ldap.c index 6f8c00aa891..e0e562e8bf9 100644 --- a/dlls/adsldp/tests/ldap.c +++ b/dlls/adsldp/tests/ldap.c @@ -28,6 +28,7 @@ #include "objbase.h" #include "iads.h" #include "adserr.h" +#include "adshlp.h" #include "wine/test.h" @@ -98,6 +99,11 @@ static void test_LDAP(void) if (hr == S_OK) IDispatch_Release(disp); + hr = ADsOpenObject(path, user, password, test[i].flags, &IID_IADs, (void **)&ads); + ok(hr == test[i].hr || hr == test[i].hr_ads_get, "%d: got %#x, expected %#x\n", i, hr, test[i].hr); + if (hr == S_OK) + IADs_Release(ads); + SysFreeString(path); SysFreeString(user); SysFreeString(password);