38 lines
767 B
C
38 lines
767 B
C
|
// 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
|