diff options
Diffstat (limited to 'src/mscorlib/src/System/Runtime/InteropServices/ComTypes/IStream.cs')
-rw-r--r-- | src/mscorlib/src/System/Runtime/InteropServices/ComTypes/IStream.cs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/mscorlib/src/System/Runtime/InteropServices/ComTypes/IStream.cs b/src/mscorlib/src/System/Runtime/InteropServices/ComTypes/IStream.cs new file mode 100644 index 0000000000..4a9904b6c5 --- /dev/null +++ b/src/mscorlib/src/System/Runtime/InteropServices/ComTypes/IStream.cs @@ -0,0 +1,54 @@ +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +/*============================================================================= +** +** +** +** Purpose: IStream interface definition. +** +** +=============================================================================*/ + +namespace System.Runtime.InteropServices.ComTypes +{ + using System; + + [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)] + + public struct STATSTG + { + public String pwcsName; + public int type; + public Int64 cbSize; + public FILETIME mtime; + public FILETIME ctime; + public FILETIME atime; + public int grfMode; + public int grfLocksSupported; + public Guid clsid; + public int grfStateBits; + public int reserved; + } + + [Guid("0000000c-0000-0000-C000-000000000046")] + [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] + [ComImport] + public interface IStream + { + // ISequentialStream portion + void Read([MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1), Out] Byte[] pv, int cb, IntPtr pcbRead); + void Write([MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] Byte[] pv, int cb, IntPtr pcbWritten); + + // IStream portion + void Seek(Int64 dlibMove, int dwOrigin, IntPtr plibNewPosition); + void SetSize(Int64 libNewSize); + void CopyTo(IStream pstm, Int64 cb, IntPtr pcbRead, IntPtr pcbWritten); + void Commit(int grfCommitFlags); + void Revert(); + void LockRegion(Int64 libOffset, Int64 cb, int dwLockType); + void UnlockRegion(Int64 libOffset, Int64 cb, int dwLockType); + void Stat(out STATSTG pstatstg, int grfStatFlag); + void Clone(out IStream ppstm); + } +} |