Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
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);
        }