2011-09-09 19 views
0

このコードはIE8以前で動作しました。 IE9の場合、IPersistStreamInit :: Save()はE_NOTIMPLを返します。どんな助けでも大歓迎です!IEersistStreamInit :: Save()はIE9で動作していませんか?

HRESULT CHtmlCtrl::GetDocumentHTML(CString& strHTML) const 
{ 
    HRESULT hr = E_NOINTERFACE; 

    CComPtr<IHTMLDocument2> spHTMLDocument; 
    GetHtmlDocument()->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&spHTMLDocument); 
    if (spHTMLDocument) 
    { 
     CComQIPtr<IPersistStreamInit> spPSI; 
     spPSI = spHTMLDocument; 
     if (spPSI) 
     { 
      CStreamOnCString stream; 
      hr = spPSI->Save(static_cast<IStream*>(&stream), FALSE); 
      if (hr == S_OK) 
      { 
       if (!stream.CopyData(strHTML)) 
        hr = E_OUTOFMEMORY; 
      } 
     } 
    } 

    return hr; 
} 

答えて

1

説明したMFCのバグであると思われ、hereを確認しました。 Visual Studio 2012 RTMのFixed

関連する問題