blob: f89ac70932c84226db2c52d71dc7c0efbc414b8b [file] [log] [blame]
[email protected]8ca280e2011-10-19 15:37:331// Copyright (c) 2011 The Chromium Authors. All rights reserved.
[email protected]f7817822009-09-24 05:11:582// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_FRAME_CHROME_PROTOCOL_H_
6#define CHROME_FRAME_CHROME_PROTOCOL_H_
7
8#include <atlbase.h>
9#include <atlcom.h>
[email protected]8ca280e2011-10-19 15:37:3310
11#include "chrome_frame/chrome_tab.h"
[email protected]f7817822009-09-24 05:11:5812#include "chrome_frame/resource.h"
13#include "grit/chrome_frame_resources.h"
14
[email protected]f7817822009-09-24 05:11:5815// ChromeProtocol
16class ATL_NO_VTABLE ChromeProtocol
17 : public CComObjectRootEx<CComSingleThreadModel>,
18 public CComCoClass<ChromeProtocol, &CLSID_ChromeProtocol>,
19 public IInternetProtocol {
20 public:
21 ChromeProtocol() {
22 }
23 DECLARE_REGISTRY_RESOURCEID(IDR_CHROMEPROTOCOL)
24
25 BEGIN_COM_MAP(ChromeProtocol)
26 COM_INTERFACE_ENTRY(IInternetProtocol)
27 COM_INTERFACE_ENTRY(IInternetProtocolRoot)
28 END_COM_MAP()
29
30 DECLARE_PROTECT_FINAL_CONSTRUCT()
31
32 HRESULT FinalConstruct() {
33 return S_OK;
34 }
35 void FinalRelease() {
36 }
37
38 public:
39 // IInternetProtocolRoot
40 STDMETHOD(Start)(LPCWSTR url,
41 IInternetProtocolSink* prot_sink,
42 IInternetBindInfo* bind_info,
43 DWORD flags,
44 DWORD reserved);
45 STDMETHOD(Continue)(PROTOCOLDATA* protocol_data);
46 STDMETHOD(Abort)(HRESULT reason, DWORD options);
47 STDMETHOD(Terminate)(DWORD options);
48 STDMETHOD(Suspend)();
49 STDMETHOD(Resume)();
50
51 // IInternetProtocol based on IInternetProtocolRoot
52 STDMETHOD(Read)(void* buffer,
53 ULONG buffer_size_in_bytes,
54 ULONG* bytes_read);
55 STDMETHOD(Seek)(LARGE_INTEGER move_by,
56 DWORD origin,
57 ULARGE_INTEGER* new_position);
58 STDMETHOD(LockRequest)(DWORD options);
59 STDMETHOD(UnlockRequest)(void);
60};
61
[email protected]f7817822009-09-24 05:11:5862#endif // CHROME_FRAME_CHROME_PROTOCOL_H_