簡體   English   中英

從CDHtmlDialog獲取cookie

[英]Get cookie from CDHtmlDialog

在我的MFC應用程序中,我具有派生的CDHtmlDialog類,該類可打開登錄屏幕,並且我需要在重定向后從服務器獲取url和cookie。

我導航到OnInitDialog內的url,並捕獲OnNavigateComplete內的重定向:

void CDMYHtmlDlg::OnNavigateComplete(LPDISPATCH pDisp, LPCTSTR szUrl)
{
    BSTR *bstr = nullptr;
    this->GetDHtmlDocument(&this->m_spHtmlDoc);
    if (this->m_spHtmlDoc != nullptr)
        this->m_spHtmlDoc->get_cookie(bstr);
}

但是GetDHtmlDocument返回E_NOINTERFACE,我應該實現他嗎? 如果是,我如何獲取IHTMLDocument2?

所以我的問題是為什么我無法獲取文檔,這是獲取Cookie的正確方法嗎?

在此先感謝您,我的英語不好。

終於想通了。

在CDHtmlDialog類內部,OnNavigateComplete方法負責將值分配給m_spHtmlDoc,但是由於我覆蓋了該方法,因此沒有人向文檔分配值,甚至沒有給OnDocumentComplete分配值,因此簡單的解決方案是

void CDHtmlDlgPersonalizado::OnNavigateComplete(LPDISPATCH pDisp, LPCTSTR szUrl)
{
    /*CALL THE PARENT METHOD*/
    CDHtmlDialog::OnNavigateComplete(pDisp, szUrl);

    /*Now GetDHtmlDocument will get the value from m_spHtmlDoc and assign to spHtmlDoc*/
    IHTMLDocument2Ptr spHtmlDoc = nullptr;
    this->GetDHtmlDocument(&spHtmlDoc);

    if (spHtmlDoc != nullptr)
    {
        BSTR bstr = ::SysAllocString(L" ");
        spHtmlDoc->get_cookie(&bstr);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM