Updating trunk VERSION from 900.0 to 901.0
[chromium-blink-merge.git] / chrome_frame / chrome_protocol.h
blobd98ca69c5ed1084a37c64a2c56a4b8e2a34b2e97
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_FRAME_CHROME_PROTOCOL_H_
6 #define CHROME_FRAME_CHROME_PROTOCOL_H_
8 #include <atlbase.h>
9 #include <atlcom.h>
10 #include "chrome_frame/resource.h"
11 #include "grit/chrome_frame_resources.h"
13 // Include without path to make GYP build see it.
14 #include "chrome_tab.h" // NOLINT
16 // ChromeProtocol
17 class ATL_NO_VTABLE ChromeProtocol
18 : public CComObjectRootEx<CComSingleThreadModel>,
19 public CComCoClass<ChromeProtocol, &CLSID_ChromeProtocol>,
20 public IInternetProtocol {
21 public:
22 ChromeProtocol() {
24 DECLARE_REGISTRY_RESOURCEID(IDR_CHROMEPROTOCOL)
26 BEGIN_COM_MAP(ChromeProtocol)
27 COM_INTERFACE_ENTRY(IInternetProtocol)
28 COM_INTERFACE_ENTRY(IInternetProtocolRoot)
29 END_COM_MAP()
31 DECLARE_PROTECT_FINAL_CONSTRUCT()
33 HRESULT FinalConstruct() {
34 return S_OK;
36 void FinalRelease() {
39 public:
40 // IInternetProtocolRoot
41 STDMETHOD(Start)(LPCWSTR url,
42 IInternetProtocolSink* prot_sink,
43 IInternetBindInfo* bind_info,
44 DWORD flags,
45 DWORD reserved);
46 STDMETHOD(Continue)(PROTOCOLDATA* protocol_data);
47 STDMETHOD(Abort)(HRESULT reason, DWORD options);
48 STDMETHOD(Terminate)(DWORD options);
49 STDMETHOD(Suspend)();
50 STDMETHOD(Resume)();
52 // IInternetProtocol based on IInternetProtocolRoot
53 STDMETHOD(Read)(void* buffer,
54 ULONG buffer_size_in_bytes,
55 ULONG* bytes_read);
56 STDMETHOD(Seek)(LARGE_INTEGER move_by,
57 DWORD origin,
58 ULARGE_INTEGER* new_position);
59 STDMETHOD(LockRequest)(DWORD options);
60 STDMETHOD(UnlockRequest)(void);
63 #endif // CHROME_FRAME_CHROME_PROTOCOL_H_