From 22ffd06071cf246a59b2d6d442e84e95f752e2de Mon Sep 17 00:00:00 2001 From: "locka%iol.ie" Date: Fri, 16 Nov 2001 13:01:06 +0000 Subject: [PATCH] NOT PART OF BUILD. Implement IAuthenticate to allow streams requiring username/password to be downloaded git-svn-id: svn://10.0.0.236/trunk@108295 18797224-902f-48f8-a5cc-f745e15eee43 --- .../src/pluginhostctrl/nsURLDataCallback.cpp | 37 ++++++++++++++++++- .../src/pluginhostctrl/nsURLDataCallback.h | 19 +++++++--- 2 files changed, 50 insertions(+), 6 deletions(-) diff --git a/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.cpp b/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.cpp index 2ab16145754..6aa0b5a9eb4 100644 --- a/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.cpp +++ b/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.cpp @@ -493,7 +493,7 @@ HRESULT STDMETHODCALLTYPE nsURLDataCallback::OnStopBinding( } else { - pbindinfo->dwBindVerb = BINDVERB_GET; + pbindinfo->dwBindVerb = BINDVERB_GET; } return S_OK ; @@ -601,3 +601,38 @@ HRESULT STDMETHODCALLTYPE nsURLDataCallback::OnObjectAvailable( { return S_OK; } + +/////////////////////////////////////////////////////////////////////////////// +// IAuthenticate implementation + +HRESULT STDMETHODCALLTYPE nsURLDataCallback::Authenticate( + /* [out] */ HWND __RPC_FAR *phwnd, + /* [out] */ LPWSTR __RPC_FAR *pszUsername, + /* [out] */ LPWSTR __RPC_FAR *pszPassword) +{ + ATLTRACE(_T("nsURLDataCallback::Authenticate()\n")); + + // Caller wants to pose a password dialog so get a parent HWND for it. + *phwnd = HWND_DESKTOP; + if (m_pOwner) + { + *phwnd = m_pOwner->m_hWnd; + CComPtr cpBrowser; + m_pOwner->GetWebBrowserApp(&cpBrowser); + if (cpBrowser) + { + long hwnd = NULL; + cpBrowser->get_HWND(&hwnd); + if (hwnd) + { + *phwnd = (HWND) hwnd; + } + } + } + + // Caller will figure these out for itself + *pszUsername = NULL; + *pszPassword = NULL; + + return S_OK; +} diff --git a/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.h b/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.h index 1634e95cfef..6f8a67ae85b 100644 --- a/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.h +++ b/mozilla/embedding/browser/activex/src/pluginhostctrl/nsURLDataCallback.h @@ -95,18 +95,20 @@ struct _WriteData ///////////////////////////////////////////////////////////////////////////// // nsURLDataCallback class ATL_NO_VTABLE nsURLDataCallback : - public CComObjectRootEx, + public CComObjectRootEx, public CWindowImpl, - public CComCoClass, - public IBindStatusCallback + public CComCoClass, + public IBindStatusCallback, + public IAuthenticate { public: - nsURLDataCallback(); + nsURLDataCallback(); DECLARE_PROTECT_FINAL_CONSTRUCT() BEGIN_COM_MAP(nsURLDataCallback) - COM_INTERFACE_ENTRY(IBindStatusCallback) + COM_INTERFACE_ENTRY(IBindStatusCallback) + COM_INTERFACE_ENTRY(IAuthenticate) END_COM_MAP() DECLARE_WND_CLASS(_T("MozStreamWindow")) @@ -206,6 +208,13 @@ public: virtual HRESULT STDMETHODCALLTYPE OnObjectAvailable( /* [in] */ REFIID riid, /* [iid_is][in] */ IUnknown __RPC_FAR *punk); + +// IAuthenticate +public: + virtual HRESULT STDMETHODCALLTYPE Authenticate( + /* [out] */ HWND __RPC_FAR *phwnd, + /* [out] */ LPWSTR __RPC_FAR *pszUsername, + /* [out] */ LPWSTR __RPC_FAR *pszPassword); }; #endif //__NSURLDATACALLBACK_H_