#ifndef WebHistoryItem_H
#define WebHistoryItem_H
#include "WebKit.h"
#include <CoreFoundation/CoreFoundation.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class HistoryItem;
}
class WebHistoryItem : public IWebHistoryItem, IWebHistoryItemPrivate
{
public:
static WebHistoryItem* createInstance();
static WebHistoryItem* createInstance(PassRefPtr<WebCore::HistoryItem>);
protected:
WebHistoryItem(PassRefPtr<WebCore::HistoryItem>);
~WebHistoryItem();
public:
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
virtual ULONG STDMETHODCALLTYPE AddRef(void);
virtual ULONG STDMETHODCALLTYPE Release(void);
virtual HRESULT STDMETHODCALLTYPE initWithURLString(
BSTR urlString,
BSTR title,
DATE lastVisited);
virtual HRESULT STDMETHODCALLTYPE originalURLString(
BSTR *url);
virtual HRESULT STDMETHODCALLTYPE URLString(
BSTR *url);
virtual HRESULT STDMETHODCALLTYPE title(
BSTR *pageTitle);
virtual HRESULT STDMETHODCALLTYPE lastVisitedTimeInterval(
DATE *lastVisited);
virtual HRESULT STDMETHODCALLTYPE setAlternateTitle(
BSTR title);
virtual HRESULT STDMETHODCALLTYPE alternateTitle(
BSTR* title);
virtual HRESULT STDMETHODCALLTYPE icon(
OLE_HANDLE *hBitmap);
virtual HRESULT STDMETHODCALLTYPE initFromDictionaryRepresentation(void* dictionary);
virtual HRESULT STDMETHODCALLTYPE dictionaryRepresentation(void** dictionary);
virtual HRESULT STDMETHODCALLTYPE visitCount(int *count);
virtual HRESULT STDMETHODCALLTYPE setVisitCount(int count);
virtual HRESULT STDMETHODCALLTYPE hasURLString(BOOL* hasURL);
virtual HRESULT STDMETHODCALLTYPE mergeAutoCompleteHints(IWebHistoryItem* otherItem);
virtual HRESULT STDMETHODCALLTYPE setLastVisitedTimeInterval(DATE time);
virtual HRESULT STDMETHODCALLTYPE setTitle(BSTR title);
virtual HRESULT STDMETHODCALLTYPE RSSFeedReferrer(BSTR* url);
virtual HRESULT STDMETHODCALLTYPE setRSSFeedReferrer(BSTR url);
virtual HRESULT STDMETHODCALLTYPE hasPageCache(BOOL *hasCache);
virtual HRESULT STDMETHODCALLTYPE setHasPageCache(BOOL hasCache);
virtual HRESULT STDMETHODCALLTYPE target(BSTR* target);
virtual HRESULT STDMETHODCALLTYPE isTargetItem(BOOL* result);
virtual HRESULT STDMETHODCALLTYPE children(unsigned* childCount, SAFEARRAY** children);
virtual HRESULT STDMETHODCALLTYPE lastVisitWasFailure(BOOL* wasFailure);
virtual HRESULT STDMETHODCALLTYPE setLastVisitWasFailure(BOOL wasFailure);
virtual HRESULT STDMETHODCALLTYPE lastVisitWasHTTPNonGet(BOOL* HTTPNonGet);
virtual HRESULT STDMETHODCALLTYPE setLastVisitWasHTTPNonGet(BOOL HTTPNonGet);
virtual HRESULT STDMETHODCALLTYPE redirectURLs(IEnumVARIANT**);
virtual HRESULT STDMETHODCALLTYPE visitedWithTitle(BSTR title, BOOL increaseVisitCount);
virtual HRESULT STDMETHODCALLTYPE getDailyVisitCounts(int* number, int** counts);
virtual HRESULT STDMETHODCALLTYPE getWeeklyVisitCounts(int* number, int** counts);
virtual HRESULT STDMETHODCALLTYPE recordInitialVisit();
WebCore::HistoryItem* historyItem() const;
protected:
ULONG m_refCount;
RefPtr<WebCore::HistoryItem> m_historyItem;
WTF::String m_alternateTitle;
};
#endif