public unsafe void Stat(Interop.Ole32.STATSTG *pstatstg, Interop.Ole32.STATFLAG grfStatFlag) { if (pstatstg == null) { throw new ArgumentNullException(nameof(pstatstg)); } *pstatstg = new Interop.Ole32.STATSTG { cbSize = (ulong)_dataStream.Length, type = Interop.Ole32.STGTY.STGTY_STREAM, // Default read/write access is STGM_READ, which == 0 grfMode = _dataStream.CanWrite ? _dataStream.CanRead ? Interop.Ole32.STGM.STGM_READWRITE : Interop.Ole32.STGM.STGM_WRITE : Interop.Ole32.STGM.Default }; if (grfStatFlag == Interop.Ole32.STATFLAG.STATFLAG_DEFAULT) { // Caller wants a name pstatstg->AllocName(_dataStream is FileStream fs ? fs.Name : _dataStream.ToString()); } }
public void Stat(out Interop.Ole32.STATSTG pstatstg, Interop.Ole32.STATFLAG grfStatFlag) { pstatstg = new Interop.Ole32.STATSTG { cbSize = (ulong)_dataStream.Length, type = Interop.Ole32.STGTY.STGTY_STREAM, // Default read/write access is STGM_READ, which == 0 grfMode = _dataStream.CanWrite ? _dataStream.CanRead ? Interop.Ole32.STGM.STGM_READWRITE : Interop.Ole32.STGM.STGM_WRITE : Interop.Ole32.STGM.Default }; if (grfStatFlag == Interop.Ole32.STATFLAG.STATFLAG_DEFAULT) { // Caller wants a name pstatstg.AllocName(_dataStream is FileStream fs ? fs.Name : _dataStream.ToString()); } }