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