nucomcore 0.1.1

Nucom, cross-platform Component Object Model implementation
Documentation
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
    );
};