import "isequentialstream.idl";
include "istream_.h";
[
object,
uuid(0000000c-0000-0000-c000-000000000046)
]
interface IStream : ISequentialStream
{
HRESULT Seek(
int64_t offset,
StreamSeek origin,
uint64_t *new_pos
);
HRESULT SetSize(
[in] uint64_t size
);
HRESULT CopyTo(
[in, unique] IStream *dest,
[in] uint64_t len,
[out] uint64_t *read,
[out] uint64_t *written
);
HRESULT Commit(
[in] StreamCommitFlags commit_flags
);
HRESULT Revert();
HRESULT LockRegion(
[in] uint64_t offset,
[in] uint64_t len,
[in] StreamLockFlags lock_flags
);
HRESULT UnlockRegion(
[in] uint64_t offset,
[in] uint64_t len,
StreamLockFlags lock_flags
);
HRESULT Stat(
[out] StreamStats *stats,
[in] StatFlags flags
);
HRESULT Clone(
[out] IStream **copy
);
};