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
This commit is contained in:
locka%iol.ie
2001-11-16 13:01:06 +00:00
parent acf074d45d
commit 22ffd06071
2 changed files with 50 additions and 6 deletions

View File

@@ -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<IWebBrowserApp> 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;
}

View File

@@ -95,18 +95,20 @@ struct _WriteData
/////////////////////////////////////////////////////////////////////////////
// nsURLDataCallback
class ATL_NO_VTABLE nsURLDataCallback :
public CComObjectRootEx<CComMultiThreadModel>,
public CComObjectRootEx<CComMultiThreadModel>,
public CWindowImpl<nsURLDataCallback, CWindow, CNullTraits>,
public CComCoClass<nsURLDataCallback, &CLSID_NULL>,
public IBindStatusCallback
public CComCoClass<nsURLDataCallback, &CLSID_NULL>,
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_