Signed-off-by: Dmitry Timoshkov dmitry@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 = {