Beispiel #1
0
            public unsafe HRESULT Stat(STATSTG *pstatstg, STATFLAG grfStatFlag)
            {
                if (pstatstg == null)
                {
                    return(HRESULT.E_POINTER);
                }

                *pstatstg = new STATSTG
                {
                    cbSize = (ulong)_dataStream.Length,
                    type   = STGTY.STREAM,

                    // Default read/write access is STGM_READ, which == 0
                    grfMode = _dataStream.CanWrite
                        ? _dataStream.CanRead
                            ? STGM.READWRITE
                            : STGM.WRITE
                        : STGM.Default
                };

                if (grfStatFlag == STATFLAG.DEFAULT)
                {
                    // Caller wants a name
                    pstatstg->AllocName(_dataStream is FileStream fs ? fs.Name : _dataStream.ToString());
                }

                return(HRESULT.S_OK);
            }
Beispiel #2
0
 public void Stat(out ComTypes.STATSTG pstatstg, STATFLAG grfStatFlag)
 {
     pstatstg                   = new ComTypes.STATSTG();
     pstatstg.type              = (int)STGTY.Stream;
     pstatstg.cbSize            = this.stream.Length;
     pstatstg.grfLocksSupported = (int)LOCKTYPE.Exclusive;
 }
Beispiel #3
0
            public void Stat(out STATSTG pstatstg, STATFLAG grfStatFlag)
            {
                pstatstg = new STATSTG
                {
                    cbSize = (ulong)_dataStream.Length,
                    type   = STGTY.STREAM,

                    // Default read/write access is READ, which == 0
                    grfMode = _dataStream.CanWrite
                        ? _dataStream.CanRead
                            ? STGM.READWRITE
                            : STGM.WRITE
                        : STGM.Default
                };

                if (grfStatFlag == STATFLAG.DEFAULT)
                {
                    // Caller wants a name
                    pstatstg.AllocName(_dataStream is FileStream fs ? fs.Name : _dataStream.ToString());
                }
            }
 public void Stat(ref STATSTG pstatstg, STATFLAG grfStatFlag)
 {
     pstatstg         = new STATSTG();
     pstatstg.type    = STGTY.STGTY_STREAM;
     pstatstg.cbSize  = UnderlyingStream.Length;
     pstatstg.grfMode = 0;
     if (UnderlyingStream.CanRead && UnderlyingStream.CanWrite)
     {
         pstatstg.grfMode |= STGM.STGM_READWRITE;
     }
     else if (UnderlyingStream.CanRead)
     {
         pstatstg.grfMode |= STGM.STGM_READ;
     }
     else if (UnderlyingStream.CanWrite)
     {
         pstatstg.grfMode |= STGM.STGM_WRITE;
     }
     else
     {
         throw new ObjectDisposedException(null);
     }
 }
 public void Stat(out ComTypes.STATSTG pstatstg, STATFLAG grfStatFlag)
 {
     pstatstg = new ComTypes.STATSTG();
     pstatstg.type = (int)STGTY.Stream;
     pstatstg.cbSize = this.stream.Length;
     pstatstg.grfLocksSupported = (int)LOCKTYPE.Exclusive;
 }
Beispiel #6
0
 void Stat(out STATSTG pstatstg, [In] STATFLAG grfStatFlag);
Beispiel #7
0
        internal static System.Runtime.InteropServices.ComTypes.STATSTG GetStatistics(this IStorage storage, STATFLAG statflag)
        {
            System.Runtime.InteropServices.ComTypes.STATSTG statstg = default(System.Runtime.InteropServices.ComTypes.STATSTG);
            uint grfStatFlag = (uint)statflag;

            storage.Stat(out statstg, grfStatFlag);
            return(statstg);
        }