00001 /* 00002 Free Download Manager Copyright (c) 2003-2007 FreeDownloadManager.ORG 00003 Open Download Manager Copyright (c) 2008-2010 OpenDownloadManager.ORG 00004 */ 00005 00006 #if !defined(AFX_FILESTREAM_H__12E13660_1A04_4D65_9212_886BC37480EB__INCLUDED_) 00007 #define AFX_FILESTREAM_H__12E13660_1A04_4D65_9212_886BC37480EB__INCLUDED_ 00008 00009 #if _MSC_VER > 1000 00010 #pragma once 00011 #endif 00012 00013 #include <dshow.h> 00014 #include <DShow/wxdebug.h> 00015 #include <DShow/combase.h> 00016 #include <DShow/wxutil.h> 00017 #include <DShow/wxlist.h> 00018 #include <DShow/asyncio.h> 00019 #include "fsDShowFilterDetector.h" 00020 #include "fsAVIIdx1Builder.h" 00021 00022 class fsFileStream : public CAsyncStream 00023 { 00024 public: 00025 HANDLE Detach(); 00026 const AM_MEDIA_TYPE* Get_MediaType(); 00027 void Close(); 00028 00029 00030 void Attach (HANDLE hFile, UINT64 uInMaxAvail = _UI64_MAX); 00031 HRESULT Read (PBYTE pbBuffer, DWORD dwBytesToRead, BOOL bAlign, LPDWORD pdwBytesRead); 00032 HRESULT Size (LONGLONG* pllTotal, LONGLONG* pllAvail); 00033 HRESULT SetPointer (LONGLONG llPos); 00034 void Unlock(); 00035 void Lock(); 00036 DWORD Alignment(); 00037 fsFileStream (); 00038 virtual ~fsFileStream(); 00039 00040 protected: 00041 UINT64 m_uInMaxAvail; 00042 HANDLE m_hIdx1File; 00043 fsAVIIdx1Builder m_idx1; 00044 BOOL m_bMediaIsValid; 00045 fsDShowFilterDetector m_mtd; 00046 UINT64 m_uCurPos; 00047 CCritSec m_csLock; 00048 HANDLE m_hFile; 00049 }; 00050 00051 #endif
1.5.6