//+-------------------------------------------------------------------------
//
//  Microsoft Windows
//  Copyright (C) Microsoft Corporation, 1998.
//
//  File:
//      serializ.idl
//
//  Contents:
//      Definition of private COM interfaces for serialization
//      used in activation
//
//  History:
//              VinayKr     01-16-98        Created
//
//--------------------------------------------------------------------------
#ifndef DO_NO_IMPORTS
    import "iface.idl";
    import "wtypes.idl";
    import "objidl.idl";
    import "obase.idl";
#endif

interface ISerializableParent;

[
object,
local,
uuid(000001B2-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface ISerializable:IUnknown
{
    HRESULT Serialize([in] void *pSer);
    HRESULT UnSerialize([in] void *pSer);
    HRESULT GetSize([in] void *pSer, [out] DWORD *pdwSize);
    HRESULT GetCLSID([out] CLSID *pClsid);
    HRESULT SetParent(ISerializableParent *pParent);
    HRESULT SerializableQueryInterface([in] REFIID riid, 
                                        [out, iid_is(riid)] void **ppvObject);

}

[
object,
local,
uuid(000001B1-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface ISerializableParent:IUnknown
{
    HRESULT GetUnserialized([in] REFCLSID clsid, 
                            [out] void **pISer,
                            [out] DWORD *pSize, [out] DWORD *pPos);
}
