2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
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.
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, 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 COMPUTER, 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.
26 #ifndef WebHistoryItem_H
27 #define WebHistoryItem_H
31 #include <CoreFoundation/CoreFoundation.h>
32 #include <WebCore/PlatformString.h>
33 #include <wtf/PassRefPtr.h>
34 #include <wtf/RefPtr.h>
40 //-----------------------------------------------------------------------------
42 class WebHistoryItem : public IWebHistoryItem, IWebHistoryItemPrivate
45 static WebHistoryItem* createInstance();
46 static WebHistoryItem* createInstance(PassRefPtr<WebCore::HistoryItem>);
48 WebHistoryItem(PassRefPtr<WebCore::HistoryItem>);
53 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
54 virtual ULONG STDMETHODCALLTYPE AddRef(void);
55 virtual ULONG STDMETHODCALLTYPE Release(void);
58 virtual HRESULT STDMETHODCALLTYPE initWithURLString(
59 /* [in] */ BSTR urlString,
60 /* [in] */ BSTR title,
61 /* [in] */ DATE lastVisited);
63 virtual HRESULT STDMETHODCALLTYPE originalURLString(
64 /* [retval][out] */ BSTR *url);
66 virtual HRESULT STDMETHODCALLTYPE URLString(
67 /* [retval][out] */ BSTR *url);
69 virtual HRESULT STDMETHODCALLTYPE title(
70 /* [retval][out] */ BSTR *pageTitle);
72 virtual HRESULT STDMETHODCALLTYPE lastVisitedTimeInterval(
73 /* [retval][out] */ DATE *lastVisited);
75 virtual HRESULT STDMETHODCALLTYPE setAlternateTitle(
76 /* [in] */ BSTR title);
78 virtual HRESULT STDMETHODCALLTYPE alternateTitle(
79 /* [retval][out] */ BSTR* title);
81 virtual HRESULT STDMETHODCALLTYPE icon(
82 /* [out, retval] */ OLE_HANDLE *hBitmap);
84 // IWebHistoryItemPrivate
85 virtual HRESULT STDMETHODCALLTYPE initFromDictionaryRepresentation(void* dictionary);
86 virtual HRESULT STDMETHODCALLTYPE dictionaryRepresentation(void** dictionary);
87 virtual HRESULT STDMETHODCALLTYPE visitCount(int *count);
88 virtual HRESULT STDMETHODCALLTYPE setVisitCount(int count);
89 virtual HRESULT STDMETHODCALLTYPE hasURLString(BOOL* hasURL);
90 virtual HRESULT STDMETHODCALLTYPE mergeAutoCompleteHints(IWebHistoryItem* otherItem);
91 virtual HRESULT STDMETHODCALLTYPE setLastVisitedTimeInterval(DATE time);
92 virtual HRESULT STDMETHODCALLTYPE setTitle(BSTR title);
93 virtual HRESULT STDMETHODCALLTYPE RSSFeedReferrer(BSTR* url);
94 virtual HRESULT STDMETHODCALLTYPE setRSSFeedReferrer(BSTR url);
95 virtual HRESULT STDMETHODCALLTYPE hasPageCache(BOOL *hasCache);
96 virtual HRESULT STDMETHODCALLTYPE setHasPageCache(BOOL hasCache);
97 virtual HRESULT STDMETHODCALLTYPE target(BSTR* target);
98 virtual HRESULT STDMETHODCALLTYPE isTargetItem(BOOL* result);
99 virtual HRESULT STDMETHODCALLTYPE children(unsigned* childCount, SAFEARRAY** children);
100 virtual HRESULT STDMETHODCALLTYPE lastVisitWasFailure(BOOL* wasFailure);
101 virtual HRESULT STDMETHODCALLTYPE setLastVisitWasFailure(BOOL wasFailure);
102 virtual HRESULT STDMETHODCALLTYPE lastVisitWasHTTPNonGet(BOOL* HTTPNonGet);
103 virtual HRESULT STDMETHODCALLTYPE setLastVisitWasHTTPNonGet(BOOL HTTPNonGet);
104 virtual HRESULT STDMETHODCALLTYPE redirectURLs(IEnumVARIANT**);
105 virtual HRESULT STDMETHODCALLTYPE visitedWithTitle(BSTR title, BOOL increaseVisitCount);
106 virtual HRESULT STDMETHODCALLTYPE getDailyVisitCounts(int* number, int** counts);
107 virtual HRESULT STDMETHODCALLTYPE getWeeklyVisitCounts(int* number, int** counts);
108 virtual HRESULT STDMETHODCALLTYPE recordInitialVisit();
110 WebCore::HistoryItem* historyItem() const;
115 RefPtr<WebCore::HistoryItem> m_historyItem;
116 WTF::String m_alternateTitle;