2017-02-24 7 views
0

私のMFCアプリケーションには、ログイン画面を開く派生CDHtmlDialogクラスがあり、リダイレクト後にサーバーからURLとCookieを取得する必要があります。CDHtmlDialogからクッキーを取得

私はの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を取得する方法は?

私の質問はなぜ私はドキュメントを取得することができない、これは正しい方法は、クッキーを取得するのですか?

ありがとうございました。私の悪い英語を申し訳ありません。

+0

あるので、何のものは文書ではなく、さらにOnDocumentCompleteに値を割り当てませんあなたの[前の質問](http://stackoverflow.com/q/42578008/1889329)とは異なる質問ですか? – IInspectable

答えて

0

最後にそれを分かりました。

CDHtmlDialogクラス内OnNavigateCompleteメソッドはm_spHtmlDocに値を割り当てるための責任があるが、私はメソッドを上書きするので、簡単な解決策は、これはどのように

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); 
    } 
} 
関連する問題