| Index: src/plugin/PluginWbPassThrough.h |
| =================================================================== |
| --- a/src/plugin/PluginWbPassThrough.h |
| +++ b/src/plugin/PluginWbPassThrough.h |
| @@ -1,5 +1,5 @@ |
| #pragma once |
| - |
| +#include <cstdint> |
| #include "ProtocolCF.h" |
| #include "ProtocolImpl.h" |
| #define IE_MAX_URL_LENGTH 2048 |
| @@ -11,14 +11,17 @@ |
| typedef PassthroughAPP::CInternetProtocolSinkWithSP<WBPassthruSink, CComMultiThreadModel> BaseClass; |
| public: |
| + WBPassthruSink(); |
| - bool m_shouldBlock; |
| - bool m_lastDataReported; |
| + uint64_t m_currentPositionOfSentPage; |
| CComPtr<IInternetProtocol> m_pTargetProtocol; |
| + int m_contentType; |
| + std::wstring m_boundDomain; |
| + bool m_blockedInTransaction; |
| - int GetContentTypeFromMimeType(CString mimeType); |
| - int GetContentTypeFromURL(CString src); |
| - int GetContentType(CString mimeType, std::wstring domain, CString src); |
| + int GetContentTypeFromMimeType(const CString& mimeType); |
| + int GetContentTypeFromURL(const CString& src); |
| + int GetContentType(const CString& mimeType, const std::wstring& domain, const CString& src); |
| public: |
| BEGIN_COM_MAP(WBPassthruSink) |
| COM_INTERFACE_ENTRY(IHttpNegotiate) |
| @@ -43,13 +46,18 @@ |
| HRESULT OnStart(LPCWSTR szUrl, IInternetProtocolSink *pOIProtSink, |
| IInternetBindInfo *pOIBindInfo, DWORD grfPI, HANDLE_PTR dwReserved, |
| - IInternetProtocol* pTargetProtocol); |
| - HRESULT Read(void *pv, ULONG cb, ULONG* pcbRead); |
| + IInternetProtocol* pTargetProtocol, bool& handled); |
| + HRESULT OnRead(void *pv, ULONG cb, ULONG* pcbRead); |
| STDMETHODIMP ReportProgress( |
| /* [in] */ ULONG ulStatusCode, |
| /* [in] */ LPCWSTR szStatusText); |
| + STDMETHODIMP ReportResult( |
| + /* [in] */ HRESULT hrResult, |
| + /* [in] */ DWORD dwError, |
| + /* [in] */ LPCWSTR szResult); |
| + |
| STDMETHODIMP Switch( |
| /* [in] */ PROTOCOLDATA *pProtocolData); |
| }; |
| @@ -59,11 +67,19 @@ |
| class WBPassthru : public PassthroughAPP::CInternetProtocol<WBStartPolicy> |
| { |
| + typedef PassthroughAPP::CInternetProtocol<WBStartPolicy> BaseClass; |
| public: |
| + WBPassthru(); |
| // IInternetProtocolRoot |
| STDMETHODIMP Start(LPCWSTR szUrl, IInternetProtocolSink *pOIProtSink, |
| - IInternetBindInfo *pOIBindInfo, DWORD grfPI, HANDLE_PTR dwReserved); |
| + IInternetBindInfo *pOIBindInfo, DWORD grfPI, HANDLE_PTR dwReserved) override; |
| //IInternetProtocol |
| - STDMETHODIMP Read( /* [in, out] */ void *pv,/* [in] */ ULONG cb,/* [out] */ ULONG *pcbRead); |
| + STDMETHODIMP Read(/* [in, out] */ void *pv,/* [in] */ ULONG cb,/* [out] */ ULONG *pcbRead) override; |
| + |
| + STDMETHODIMP LockRequest(/* [in] */ DWORD dwOptions) override; |
| + STDMETHODIMP UnlockRequest() override; |
| + |
| + bool m_shouldSupplyCustomContent; |
| + bool m_hasOriginalStartCalled; |
| }; |