webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
WebArchive.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2008, 2015 Apple Inc. All Rights Reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25 
26 #ifndef WebArchive_h
27 #define WebArchive_h
28 
29 #include "WebKit.h"
30 
31 #include <wtf/PassRefPtr.h>
32 #include <wtf/RefPtr.h>
33 
34 namespace WebCore {
35  class LegacyWebArchive;
36 }
37 
38 class WebArchive : public IWebArchive
39 {
40 public:
41  static WebArchive* createInstance();
42  static WebArchive* createInstance(PassRefPtr<WebCore::LegacyWebArchive>);
43 protected:
44  WebArchive(PassRefPtr<WebCore::LegacyWebArchive>);
45  ~WebArchive();
46 
47 public:
48  // IUnknown
49  virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
50  virtual ULONG STDMETHODCALLTYPE AddRef();
51  virtual ULONG STDMETHODCALLTYPE Release();
52 
53  // IWebArchive
54  virtual HRESULT STDMETHODCALLTYPE initWithMainResource(_In_opt_ IWebResource* mainResource,
55  __inout_ecount_full(cSubResources) IWebResource** subResources, int cSubResources,
56  __inout_ecount_full(cSubFrameArchives) IWebArchive** subFrameArchives, int cSubFrameArchives);
57  virtual HRESULT STDMETHODCALLTYPE initWithData(_In_opt_ IStream*);
58  virtual HRESULT STDMETHODCALLTYPE initWithNode(_In_opt_ IDOMNode*);
59  virtual HRESULT STDMETHODCALLTYPE mainResource(_COM_Outptr_opt_ IWebResource**);
60  virtual HRESULT STDMETHODCALLTYPE subResources(_COM_Outptr_opt_ IEnumVARIANT**);
61  virtual HRESULT STDMETHODCALLTYPE subframeArchives(_COM_Outptr_opt_ IEnumVARIANT**);
62  virtual HRESULT STDMETHODCALLTYPE data(_COM_Outptr_opt_ IStream**);
63 
64 protected:
65  ULONG m_refCount { 0 };
66  RefPtr<WebCore::LegacyWebArchive> m_archive;
67 };
68 
69 #endif // WebArchive_h
Definition: IWebResource.idl:44
Definition: WebArchive.h:47
RefPtr< WebCore::LegacyWebArchive > m_archive
Definition: WebArchive.h:66
unsigned long ULONG
Definition: MD5.h:32
HRESULT
Definition: ScrollbarThemeWin.cpp:74
sender AddRef()
int Release(RepeatedCompositeContainer *self)
Definition: repeated_composite_container.cc:458
Definition: IWebArchive.idl:48
EGLStreamKHR EGLint EGLint EGLint const void * data
Definition: eglext.h:984
This file is generated by create-http-header-name-table, do not edit.
Definition: CharsetData.cpp:6
Definition: DOMCore.idl:95