如何获得IStream的长度?C++

Sch*_*rtz 5 c++ windows stream

我正在创建一个IStream如下:

IStream* stream;
result = CreateStreamOnHGlobal(0, TRUE, &stream);
Run Code Online (Sandbox Code Playgroud)

然后我有一个CImage对象,我保存到此流:

image->Save(stream, Gdiplus::ImageFormatBMP);
Run Code Online (Sandbox Code Playgroud)

我需要获取写入此IStream的字节大小.

我怎样才能做到这一点?

在IStream中没有长度或类似的东西......

谢谢!

Chr*_*her 7

IStream :: Stat应该做你想要的.


小智 5

或者您可以使用:

    ULARGE_INTEGER liSize;
    IStream_Size(pStream, &liSize);
Run Code Online (Sandbox Code Playgroud)

您可能会发现在此上下文中有用的其他功能:

    IStream_Reset(pStream);         // reset seek position to beginning
    IStream_Read(pStream, mem, size);
Run Code Online (Sandbox Code Playgroud)