[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);
}