Home | History | Annotate | Download | only in Common
      1 // CrossThreadProgress.h
      2 
      3 #ifndef __CROSSTHREADPROGRESS_H
      4 #define __CROSSTHREADPROGRESS_H
      5 
      6 #include "../../ICoder.h"
      7 #include "../../../Windows/Synchronization.h"
      8 #include "../../../Common/MyCom.h"
      9 
     10 class CCrossThreadProgress:
     11   public ICompressProgressInfo,
     12   public CMyUnknownImp
     13 {
     14 public:
     15   const UInt64 *InSize;
     16   const UInt64 *OutSize;
     17   HRESULT Result;
     18   NWindows::NSynchronization::CAutoResetEvent ProgressEvent;
     19   NWindows::NSynchronization::CAutoResetEvent WaitEvent;
     20 
     21   HRes Create()
     22   {
     23     RINOK(ProgressEvent.CreateIfNotCreated());
     24     return WaitEvent.CreateIfNotCreated();
     25   }
     26   void Init()
     27   {
     28     ProgressEvent.Reset();
     29     WaitEvent.Reset();
     30   }
     31 
     32   MY_UNKNOWN_IMP
     33 
     34   STDMETHOD(SetRatioInfo)(const UInt64 *inSize, const UInt64 *outSize);
     35 };
     36 
     37 #endif
     38