⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webhistoryitem.cpp

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::setLastVisitedTimeInterval(DATE time){    m_historyItem->setLastVisitedTime(MarshallingHelpers::DATEToCFAbsoluteTime(time));    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::setTitle(BSTR title){    m_historyItem->setTitle(String(title, SysStringLen(title)));    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::RSSFeedReferrer(BSTR* url){    BString str(m_historyItem->referrer());    *url = str.release();    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::setRSSFeedReferrer(BSTR url){    m_historyItem->setReferrer(String(url, SysStringLen(url)));    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::hasPageCache(BOOL* /*hasCache*/){    // FIXME - TODO    ASSERT_NOT_REACHED();    return E_NOTIMPL;}HRESULT STDMETHODCALLTYPE WebHistoryItem::setHasPageCache(BOOL /*hasCache*/){    // FIXME - TODO    return E_NOTIMPL;}HRESULT STDMETHODCALLTYPE WebHistoryItem::target(BSTR* target){    if (!target) {        ASSERT_NOT_REACHED();        return E_POINTER;    }    *target = BString(m_historyItem->target()).release();    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::isTargetItem(BOOL* result){    if (!result) {        ASSERT_NOT_REACHED();        return E_POINTER;    }    *result = m_historyItem->isTargetItem() ? TRUE : FALSE;    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::children(unsigned* outChildCount, SAFEARRAY** outChildren){    if (!outChildCount || !outChildren) {        ASSERT_NOT_REACHED();        return E_POINTER;    }    *outChildCount = 0;    *outChildren = 0;    const HistoryItemVector& coreChildren = m_historyItem->children();    if (coreChildren.isEmpty())        return S_OK;    size_t childCount = coreChildren.size();    SAFEARRAY* children = SafeArrayCreateVector(VT_UNKNOWN, 0, static_cast<ULONG>(childCount));    if (!children)        return E_OUTOFMEMORY;    for (unsigned i = 0; i < childCount; ++i) {        WebHistoryItem* item = WebHistoryItem::createInstance(coreChildren[i]);        if (!item) {            SafeArrayDestroy(children);            return E_OUTOFMEMORY;        }        COMPtr<IUnknown> unknown;        HRESULT hr = item->QueryInterface(IID_IUnknown, (void**)&unknown);        if (FAILED(hr)) {            SafeArrayDestroy(children);            return hr;        }        LONG longI = i;        hr = SafeArrayPutElement(children, &longI, unknown.get());        if (FAILED(hr)) {            SafeArrayDestroy(children);            return hr;        }    }    *outChildCount = static_cast<unsigned>(childCount);    *outChildren = children;    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::lastVisitWasFailure(BOOL* wasFailure){    if (!wasFailure) {        ASSERT_NOT_REACHED();        return E_POINTER;    }    *wasFailure = m_historyItem->lastVisitWasFailure();    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::setLastVisitWasFailure(BOOL wasFailure){    m_historyItem->setLastVisitWasFailure(wasFailure);    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::lastVisitWasHTTPNonGet(BOOL* HTTPNonGet){    if (!HTTPNonGet) {        ASSERT_NOT_REACHED();        return E_POINTER;    }    *HTTPNonGet = m_historyItem->lastVisitWasHTTPNonGet();    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::setLastVisitWasHTTPNonGet(BOOL HTTPNonGet){    m_historyItem->setLastVisitWasHTTPNonGet(HTTPNonGet);    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::redirectURLs(IEnumVARIANT** urls){    if (!urls) {        ASSERT_NOT_REACHED();        return E_POINTER;    }    Vector<String>* urlVector = m_historyItem->redirectURLs();    if (!urlVector) {        *urls = 0;        return S_OK;    }    COMPtr<COMEnumVariant<Vector<String> > > enumVariant(AdoptCOM, COMEnumVariant<Vector<String> >::createInstance(*urlVector));    *urls = enumVariant.releaseRef();    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::visitedWithTitle(BSTR title){    m_historyItem->visited(title, CFAbsoluteTimeGetCurrent());    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::getDailyVisitCounts(int* number, int** counts){    if (!number || !counts) {        ASSERT_NOT_REACHED();        return E_POINTER;    }    *counts = const_cast<int*>(m_historyItem->dailyVisitCounts().data());    *number = m_historyItem->dailyVisitCounts().size();    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::getWeeklyVisitCounts(int* number, int** counts){    if (!number || !counts) {        ASSERT_NOT_REACHED();        return E_POINTER;    }    *counts = const_cast<int*>(m_historyItem->weeklyVisitCounts().data());    *number = m_historyItem->weeklyVisitCounts().size();    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::recordInitialVisit(){    m_historyItem->recordInitialVisit();    return S_OK;}// IUnknown -------------------------------------------------------------------HRESULT STDMETHODCALLTYPE WebHistoryItem::QueryInterface(REFIID riid, void** ppvObject){    *ppvObject = 0;    if (IsEqualGUID(riid, __uuidof(WebHistoryItem)))        *ppvObject = this;    else if (IsEqualGUID(riid, IID_IUnknown))        *ppvObject = static_cast<IWebHistoryItem*>(this);    else if (IsEqualGUID(riid, IID_IWebHistoryItem))        *ppvObject = static_cast<IWebHistoryItem*>(this);    else if (IsEqualGUID(riid, IID_IWebHistoryItemPrivate))        *ppvObject = static_cast<IWebHistoryItemPrivate*>(this);    else        return E_NOINTERFACE;    AddRef();    return S_OK;}ULONG STDMETHODCALLTYPE WebHistoryItem::AddRef(void){    return ++m_refCount;}ULONG STDMETHODCALLTYPE WebHistoryItem::Release(void){    ULONG newRef = --m_refCount;    if (!newRef)        delete(this);    return newRef;}// IWebHistoryItem -------------------------------------------------------------HRESULT STDMETHODCALLTYPE WebHistoryItem::initWithURLString(    /* [in] */ BSTR urlString,    /* [in] */ BSTR title,    /* [in] */ DATE lastVisited){    historyItemWrappers().remove(m_historyItem.get());    m_historyItem = HistoryItem::create(String(urlString, SysStringLen(urlString)), String(title, SysStringLen(title)), MarshallingHelpers::DATEToCFAbsoluteTime(lastVisited));    historyItemWrappers().set(m_historyItem.get(), this);    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::originalURLString(     /* [retval][out] */ BSTR* url){    if (!url)        return E_POINTER;    BString str = m_historyItem->originalURLString();    *url = str.release();    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::URLString(     /* [retval][out] */ BSTR* url){    if (!url)        return E_POINTER;    BString str = m_historyItem->urlString();    *url = str.release();    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::title(     /* [retval][out] */ BSTR* pageTitle){    if (!pageTitle)        return E_POINTER;    BString str(m_historyItem->title());    *pageTitle = str.release();    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::lastVisitedTimeInterval(     /* [retval][out] */ DATE* lastVisited){    if (!lastVisited)        return E_POINTER;    *lastVisited = MarshallingHelpers::CFAbsoluteTimeToDATE(m_historyItem->lastVisitedTime());    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::setAlternateTitle(     /* [in] */ BSTR title){    m_alternateTitle = String(title, SysStringLen(title));    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::alternateTitle(     /* [retval][out] */ BSTR* title){    if (!title) {        ASSERT_NOT_REACHED();        return E_POINTER;    }    *title = BString(m_alternateTitle).release();    return S_OK;}HRESULT STDMETHODCALLTYPE WebHistoryItem::icon(     /* [out, retval] */ OLE_HANDLE* /*hBitmap*/){    ASSERT_NOT_REACHED();    return E_NOTIMPL;}// WebHistoryItem -------------------------------------------------------------HistoryItem* WebHistoryItem::historyItem() const{    return m_historyItem.get();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -