已经获得bmp资源的IStream,用OleLoadPicture获得的IPicture指针是空的,返回值-2146827807. 是不支持BMP吗?想通过IStream获得IPicture怎么办呢?

解决方案 »

  1.   

    BMP文件直接用LoadImage加载不就行了。
      

  2.   

    CreateStreamOnHGlobal(hGlobal,FALSE,&pStream);OleLoadPicture(pStream,dwSize,FALSE,IID_IPicture,
    reinterpret_cast<LPVOID *>(&m_pPicture))
      

  3.   


    OleLoadPicture()的得到的m_pPicture是空的,返回-2146827807
      

  4.   

    OleLoadPicture()函数的返回值:This function supports the standard return values E_OUTOFMEMORY and E_UNEXPECTED, as well as the following: S_OK The picture was created successfully.E_POINTER The address in pStream or ppvObj is not valid. For example, either may be NULL.E_NOINTERFACE The object does not support the interface specified in riid.
      

  5.   

    OleLoadPicture()没有返回以上三个值。而是一个奇怪的-2146827807
      

  6.   

    感觉OleLoadPicture()可能不支持bmp 实在找不到原因,直接用loadbitmap()了。