import "iunknown.idl";
import "istream.idl";
include "imarshal_.h";
[
object,
uuid(00000003-0000-0000-c000-000000000046)
]
interface IMarshal : IUnknown
{
HRESULT GetUnmarshalClass(
[in] const GUID *iid,
[in, poly(iid)] void *itf,
[in] MarshalContext dest_context,
[in] void *unused,
[in] MarshalFlags marshal_flags,
[out, retval] GUID *class_id,
);
HRESULT GetMarshalSizeMax(
[in] const GUID *iid,
[in, poly(iid)] void *itf,
[in] MarshalContext dest_context,
[in] void *unused,
[in] MarshalFlags marshal_flags,
[out, retval] size_t *size,
);
HRESULT Marshal(
[in] IStream *stream,
[in] const GUID *iid,
[in, poly(iid)] void *itf,
[in] MarshalContext dest_context,
[in] void *unused,
[in] MarshalFlags marshal_flags,
);
HRESULT Unmarshal(
[in] IStream *stream,
[in] const GUID *iid,
[out, poly(iid)] void **itf,
);
HRESULT ReleaseMarshalData(
[in] IStream *stream,
);
HRESULT DisconnectObject(
[in] uint32_t unused,
);
};