コード例 #1
0
ファイル: StreamStorage.cs プロジェクト: Alenochka17/laba3
        public Stream GetFileStream()
        {
            if (tempStreamReader != null)
                return tempStreamReader;
            else if (providerItem != null)
            {
                if (tempParentStorage == null)
                    ShellHelper.GetIStorage(providerItem.ParentItem, out tempParentStoragePtr, out tempParentStorage);

                tempStreamReader = new ShellStreamReader(providerItem, tempParentStorage, fileAccess);                
                return tempStreamReader;
            }
            else
                throw new Exception("Not possible to open a filestream.");
        }
コード例 #2
0
ファイル: StreamStorage.cs プロジェクト: Alenochka17/laba3
        public ShellAPI.STATSTG GetFileInfo()
        {
            if (tempStreamReader != null)
                return tempStreamReader.StreamInfo;
            else if (providerItem != null)
            {
                if (tempParentStorage == null)
                    ShellHelper.GetIStorage(providerItem.ParentItem, out tempParentStoragePtr, out tempParentStorage);

                tempStreamReader = new ShellStreamReader(providerItem, tempParentStorage, fileAccess);
                return tempStreamReader.StreamInfo;
            }
            else
                throw new Exception("Not possible to retrieve the STATSTG.");
        }
コード例 #3
0
        public Stream GetFileStream()
        {
            if (tempStreamReader != null)
            {
                return(tempStreamReader);
            }
            else if (providerItem != null)
            {
                if (tempParentStorage == null)
                {
                    ShellHelper.GetIStorage(providerItem.ParentItem, out tempParentStoragePtr, out tempParentStorage);
                }

                tempStreamReader = new ShellStreamReader(providerItem, tempParentStorage, fileAccess);
                return(tempStreamReader);
            }
            else
            {
                throw new Exception("Not possible to open a filestream.");
            }
        }
コード例 #4
0
        public ShellAPI.STATSTG GetFileInfo()
        {
            if (tempStreamReader != null)
            {
                return(tempStreamReader.StreamInfo);
            }
            else if (providerItem != null)
            {
                if (tempParentStorage == null)
                {
                    ShellHelper.GetIStorage(providerItem.ParentItem, out tempParentStoragePtr, out tempParentStorage);
                }

                tempStreamReader = new ShellStreamReader(providerItem, tempParentStorage, fileAccess);
                return(tempStreamReader.StreamInfo);
            }
            else
            {
                throw new Exception("Not possible to retrieve the STATSTG.");
            }
        }
コード例 #5
0
ファイル: StreamStorage.cs プロジェクト: davidcon/ScreenGrab
        internal void ReleaseStream()
        {
            if (tempStreamReader != null)
            {
                tempStreamReader.CloseStream();
                tempStreamReader = null;
            }

            if (tempParentStorage != null)
            {
                Marshal.ReleaseComObject(tempParentStorage);
                Marshal.Release(tempParentStoragePtr);
                tempParentStorage = null;
            }
        }