[PATCH 2/3] activeds: ADsOpenObject should return E_FAIL by default.

Dmitry Timoshkov dmitry at baikal.ru
Thu Mar 12 09:08:08 CDT 2020


Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
---
 dlls/activeds/activeds_main.c | 6 +++---
 dlls/adsldp/tests/Makefile.in | 2 +-
 dlls/adsldp/tests/ldap.c      | 6 ++++++
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/dlls/activeds/activeds_main.c b/dlls/activeds/activeds_main.c
index c997cab912..564acab93e 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 52141139d5..26b937aa68 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 6f8c00aa89..e0e562e8bf 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);
-- 
2.20.1




More information about the wine-devel mailing list