diff options
Diffstat (limited to 'chrome_frame/urlmon_url_request.h')
-rw-r--r-- | chrome_frame/urlmon_url_request.h | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/chrome_frame/urlmon_url_request.h b/chrome_frame/urlmon_url_request.h index 25c54ae..eb13d17 100644 --- a/chrome_frame/urlmon_url_request.h +++ b/chrome_frame/urlmon_url_request.h @@ -8,6 +8,7 @@ #include <urlmon.h> #include <atlbase.h> #include <atlcom.h> +#include <atlwin.h> #include <algorithm> @@ -28,8 +29,13 @@ class UrlmonUrlRequest public IBindStatusCallback, public IHttpNegotiate, public IAuthenticate, - public IHttpSecurity { + public IHttpSecurity, + public CWindowImpl<UrlmonUrlRequest>, + public TaskMarshallerThroughWindowsMessages<UrlmonUrlRequest> { public: + typedef TaskMarshallerThroughWindowsMessages<UrlmonUrlRequest> + TaskMarshaller; + UrlmonUrlRequest(); ~UrlmonUrlRequest(); @@ -46,6 +52,10 @@ BEGIN_SERVICE_MAP(UrlmonUrlRequest) SERVICE_ENTRY(IID_IHttpNegotiate); END_SERVICE_MAP() +BEGIN_MSG_MAP(UrlmonUrlRequest) + CHAIN_MSG_MAP(TaskMarshaller) +END_MSG_MAP() + // PluginUrlRequest implementation virtual bool Start(); virtual void Stop(); @@ -99,9 +109,7 @@ END_SERVICE_MAP() worker_thread_ = worker_thread; } - void set_task_marshaller(TaskMarshaller* task_marshaller) { - task_marshaller_ = task_marshaller; - } + virtual void OnFinalMessage(HWND window); protected: // The following functions issue and handle Urlmon requests on the dedicated @@ -114,8 +122,6 @@ END_SERVICE_MAP() // URL requests are handled on this thread. base::Thread* worker_thread_; - TaskMarshaller* task_marshaller_; - // A fake stream class to make it easier to copy received data using // IStream::CopyTo instead of allocating temporary buffers and keeping // track of data copied so far. |