[PATCH 1/4] urlmon: Implement IAuthenticate::Authenticate() in the BSC interface.

Dmitry Timoshkov dmitry at baikal.ru
Tue Jun 22 09:54:21 CDT 2021


Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
---
 dlls/urlmon/bindctx.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/dlls/urlmon/bindctx.c b/dlls/urlmon/bindctx.c
index 406232467c3..80ffe339fff 100644
--- a/dlls/urlmon/bindctx.c
+++ b/dlls/urlmon/bindctx.c
@@ -490,8 +490,22 @@ static HRESULT WINAPI BSCAuthenticate_Authenticate(IAuthenticate *iface,
         HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword)
 {
     BindStatusCallback *This = impl_from_IAuthenticate(iface);
-    FIXME("(%p)->(%p %p %p)\n", This, phwnd, pszUsername, pszPassword);
-    return E_NOTIMPL;
+    IAuthenticate *auth;
+    HRESULT hres = E_NOTIMPL;
+
+    TRACE("(%p)->(%p %p %p)\n", This, phwnd, pszUsername, pszPassword);
+
+    if(This->callback)
+        hres = IBindStatusCallback_QueryInterface(This->callback, &IID_IAuthenticate, (void**)&auth);
+    if(FAILED(hres) && This->serv_prov)
+        hres = IServiceProvider_QueryService(This->serv_prov, &IID_IAuthenticate, &IID_IAuthenticate,
+                                             (void**)&auth);
+    if(SUCCEEDED(hres)) {
+        hres = IAuthenticate_Authenticate(auth, phwnd, pszUsername, pszPassword);
+        IAuthenticate_Release(auth);
+    }
+
+    return hres;
 }
 
 static const IAuthenticateVtbl BSCAuthenticateVtbl = {
-- 
2.31.1




More information about the wine-devel mailing list