Module: wine Branch: master Commit: 18d7356f0ca1c07f09cfcf0de6a9b61349fc257a URL: https://source.winehq.org/git/wine.git/?a=commit;h=18d7356f0ca1c07f09cfcf0de...
Author: Dmitry Timoshkov dmitry@baikal.ru Date: Fri Mar 13 11:53:34 2020 +0800
activeds: Implement ADsGetObject.
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/activeds/activeds_main.c | 10 +++++++--- dlls/adsldp/tests/ldap.c | 5 +++++ 2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/dlls/activeds/activeds_main.c b/dlls/activeds/activeds_main.c index 564acab93e..6a825f0913 100644 --- a/dlls/activeds/activeds_main.c +++ b/dlls/activeds/activeds_main.c @@ -61,10 +61,14 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) /***************************************************** * ADsGetObject [ACTIVEDS.3] */ -HRESULT WINAPI ADsGetObject(LPCWSTR lpszPathName, REFIID riid, VOID** ppObject) +HRESULT WINAPI ADsGetObject(LPCWSTR path, REFIID riid, void **obj) { - FIXME("(%s)->(%s,%p)!stub\n",debugstr_w(lpszPathName), debugstr_guid(riid), ppObject); - return E_NOTIMPL; + HRESULT hr; + + hr = ADsOpenObject(path, NULL, NULL, ADS_SECURE_AUTHENTICATION, riid, obj); + if (hr != S_OK) + hr = ADsOpenObject(path, NULL, NULL, 0, riid, obj); + return hr; }
/***************************************************** diff --git a/dlls/adsldp/tests/ldap.c b/dlls/adsldp/tests/ldap.c index e0e562e8bf..28e41e4d95 100644 --- a/dlls/adsldp/tests/ldap.c +++ b/dlls/adsldp/tests/ldap.c @@ -104,6 +104,11 @@ static void test_LDAP(void) if (hr == S_OK) IADs_Release(ads);
+ hr = ADsGetObject(path, &IID_IDispatch, (void **)&disp); + 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) + IDispatch_Release(disp); + SysFreeString(path); SysFreeString(user); SysFreeString(password);