/// <summary> /// Given a IStream*, change its size /// </summary> internal static unsafe bool SetStreamSize(IntPtr pStream, ulong lSize) { Interop.COM.__IStream *pStreamNativePtr = (Interop.COM.__IStream *)(void *) pStream; UInt64 newPosition; int hr = CalliIntrinsics.StdCall__int( pStreamNativePtr->vtbl->pfnSetSize, pStreamNativePtr, lSize, (uint)Interop.COM.STREAM_SEEK.STREAM_SEEK_SET, &newPosition); return(hr >= 0); }
/// <summary> /// Given a IStream*, seek to its beginning /// </summary> internal static unsafe bool SeekStreamToBeginning(IntPtr pStream) { Interop.COM.__IStream *pStreamNativePtr = (Interop.COM.__IStream *)(void *) pStream; UInt64 newPosition; int hr = CalliIntrinsics.StdCall__int( pStreamNativePtr->vtbl->pfnSeek, pStreamNativePtr, 0UL, (uint)Interop.COM.STREAM_SEEK.STREAM_SEEK_SET, &newPosition); return(hr >= 0); }