bool AniPlayerDShowInternal::play()
{
HRESULT hr = pControl->Run();
- return SUCCEEDED(hr);
+
+ if (FAILED(hr))
+ return false;
+
+ SetThreadExecutionState(ES_CONTINUOUS | ES_DISPLAY_REQUIRED);
+ return true;
}
bool AniPlayerDShowInternal::pause()
{
- HRESULT hr = pControl->Pause();
- return SUCCEEDED(hr);
+ HRESULT hr = pControl->Pause();
+
+ if (FAILED(hr))
+ return false;
+
+ SetThreadExecutionState(ES_CONTINUOUS);
+ return true;
}
bool AniPlayerDShowInternal::stop()
{
HRESULT hr = pControl->Stop();
- return SUCCEEDED(hr);
+
+ if (FAILED(hr))
+ return false;
+
+ SetThreadExecutionState(ES_CONTINUOUS);
+ return true;
}
QSize AniPlayerDShowInternal::videoSize() const