OleSaveToStream (ole32)
Last changed: -151.204.185.153

.

    [System.Runtime.InteropServices.DllImport("OLE32.DLL", EntryPoint = "CreateStreamOnHGlobal")]
    // Create a COM stream from a pointer in unmanaged memory
    extern public static int CreateStreamOnHGlobal(IntPtr ptr, bool delete, out System.Runtime.InteropServices.ComTypes.IStream pOutStm);

       public int ByteSizeOfIPStreamInit(IPersistStreamInit pPersistStream)
       {
        int     iSzOfStreamInBytes=0;
        IntPtr  ptrIStream = IntPtr.Zero;
        IStream IPtrStream;

        if (CreateStreamOnHGlobal(ptrIStream, true, out IPtrStream) == 0)
        {
              OleSaveToStream(pPersistStream,IPtrStream);
              iSzOfStreamInBytes = IStreamSizeRead(IPtrStream);
        }
        return (iSzOfStreamInBytes);
       }