// CrossThreadProgress.h | |
#ifndef __CROSSTHREADPROGRESS_H | |
#define __CROSSTHREADPROGRESS_H | |
#include "../../ICoder.h" | |
#include "../../../Windows/Synchronization.h" | |
#include "../../../Common/MyCom.h" | |
class CCrossThreadProgress: | |
public ICompressProgressInfo, | |
public CMyUnknownImp | |
{ | |
public: | |
const UInt64 *InSize; | |
const UInt64 *OutSize; | |
HRESULT Result; | |
NWindows::NSynchronization::CAutoResetEvent ProgressEvent; | |
NWindows::NSynchronization::CAutoResetEvent WaitEvent; | |
HRes Create() | |
{ | |
RINOK(ProgressEvent.CreateIfNotCreated()); | |
return WaitEvent.CreateIfNotCreated(); | |
} | |
void Init() | |
{ | |
ProgressEvent.Reset(); | |
WaitEvent.Reset(); | |
} | |
MY_UNKNOWN_IMP | |
STDMETHOD(SetRatioInfo)(const UInt64 *inSize, const UInt64 *outSize); | |
}; | |
#endif |