Example #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);
            }
    public unsafe void Stat(STATSTG *pstatstg, uint grfStatFlag)
    {
        var statStg = new STATSTG
        {
            type    = 2,
            cbSize  = (ulong)_baseStream.Length,
            grfMode = 0
        };

        Marshal.StructureToPtr(statStg, new IntPtr(pstatstg), false);
    }
Example #3
0
        public int Stat(IStreamImpl *pinst, STATSTG *pstatstg, uint grfStatFlag)
        {
            var stm = (Stream)GCHandle.FromIntPtr(pinst->source).Target !;

            *pstatstg = new STATSTG {
                cbSize = new ULARGE_INTEGER {
                    QuadPart = (ulong)(stm.Length - pinst->offset)
                }, type = (uint)STGTY.STGTY_STREAM
            };

            return(S_OK);
        }
Example #4
0
 public int Stat([NativeTypeName("STATSTG *")] STATSTG *pstatstg, [NativeTypeName("DWORD")] uint grfStatFlag)
 {
     return(((delegate * unmanaged <ISpStreamFormatConverter *, STATSTG *, uint, int>)(lpVtbl[12]))((ISpStreamFormatConverter *)Unsafe.AsPointer(ref this), pstatstg, grfStatFlag));
 }
 public int Stat([NativeTypeName("STATSTG *")] STATSTG *pstatstg, [NativeTypeName("DWORD")] uint grfStatFlag)
 {
     return(((delegate * stdcall <IMarshalingStream *, STATSTG *, uint, int>)(lpVtbl[12]))((IMarshalingStream *)Unsafe.AsPointer(ref this), pstatstg, grfStatFlag));
 }
 public int Next([NativeTypeName("ULONG")] uint celt, [NativeTypeName("STATSTG *")] STATSTG *rgelt, [NativeTypeName("ULONG *")] uint *pceltFetched)
 {
     return(((delegate * unmanaged <IEnumSTATSTG *, uint, STATSTG *, uint *, int>)(lpVtbl[3]))((IEnumSTATSTG *)Unsafe.AsPointer(ref this), celt, rgelt, pceltFetched));
 }
 public int Stat(STATSTG *pstatstg, [NativeTypeName("DWORD")] uint grfStatFlag)
 {
     return(((delegate * unmanaged <IStreamPseudoRandomBased *, STATSTG *, uint, int>)(lpVtbl[12]))((IStreamPseudoRandomBased *)Unsafe.AsPointer(ref this), pstatstg, grfStatFlag));
 }
 public HRESULT Stat(STATSTG *pstatstg, [NativeTypeName("DWORD")] uint grfStatFlag)
 {
     return(((delegate * unmanaged <IStorage *, STATSTG *, uint, int>)(lpVtbl[17]))((IStorage *)Unsafe.AsPointer(ref this), pstatstg, grfStatFlag));
 }
Example #9
0
 public int Stat([NativeTypeName("STATSTG *")] STATSTG *pstatstg, [NativeTypeName("DWORD")] uint grfStatFlag)
 {
     return(((delegate * unmanaged <ILockBytes *, STATSTG *, uint, int>)(lpVtbl[9]))((ILockBytes *)Unsafe.AsPointer(ref this), pstatstg, grfStatFlag));
 }