summaryrefslogtreecommitdiffstats
path: root/chrome_frame/urlmon_url_request.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome_frame/urlmon_url_request.h')
-rw-r--r--chrome_frame/urlmon_url_request.h18
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.