@@ -673,25 +673,25 @@ inline HRESULT CInternetProtocolSinkWithSP<T, ThreadModel>::OnStart(
673
673
{
674
674
pOIProtSink->QueryInterface (&m_spServiceProvider);
675
675
}
676
+ return hr;
677
+ }
676
678
677
- CComPtr<IInternetProtocolSink> spSink;
678
- CComPtr<IInternetBindInfo> spBindInfo;
679
- if (SUCCEEDED (hr))
680
- {
681
- hr = QueryInterface (IID_IInternetProtocolSink,
682
- reinterpret_cast <void **>(&spSink));
683
- ATLASSERT (SUCCEEDED (hr) && spSink != 0 );
684
- }
685
- if (SUCCEEDED (hr))
679
+ template <class T , class ThreadModel >
680
+ inline HRESULT CInternetProtocolSinkWithSP<T, ThreadModel>::OnStartEx(
681
+ IUri* pUri, IInternetProtocolSink *pOIProtSink,
682
+ IInternetBindInfo *pOIBindInfo, DWORD grfPI, HANDLE_PTR dwReserved,
683
+ IInternetProtocol* pTargetProtocol)
684
+ {
685
+ ATLASSERT (m_spServiceProvider == 0 );
686
+ if (m_spServiceProvider)
686
687
{
687
- hr = QueryInterface (IID_IInternetBindInfo,
688
- reinterpret_cast <void **>(&spBindInfo));
689
- ATLASSERT (SUCCEEDED (hr) && spBindInfo != 0 );
688
+ return E_UNEXPECTED;
690
689
}
690
+ HRESULT hr = BaseClass::OnStartEx (pUri, pOIProtSink, pOIBindInfo, grfPI,
691
+ dwReserved, pTargetProtocol);
691
692
if (SUCCEEDED (hr))
692
693
{
693
- hr = pTargetProtocol->Start (szUrl, spSink, spBindInfo, grfPI,
694
- dwReserved);
694
+ pOIProtSink->QueryInterface (&m_spServiceProvider);
695
695
}
696
696
return hr;
697
697
}
0 commit comments