2025-11-28 00:35:46 +09:00

60 lines
948 B
C++

#include "CHWMFT.h"
#include "CAutoLock.h"
#include <mferror.h>
#include <mfapi.h>
HRESULT CHWMFT::GetShutdownStatus(
MFSHUTDOWN_STATUS* pStatus)
{
HRESULT hr = S_OK;
do
{
if(pStatus == NULL)
{
hr = E_POINTER;
break;
}
{
CAutoLock lock(&m_csLock);
if(m_bShutdown == FALSE)
{
hr = MF_E_INVALIDREQUEST;
break;
}
*pStatus = MFSHUTDOWN_COMPLETED;
}
}while(false);
return hr;
}
HRESULT CHWMFT::Shutdown(void)
{
HRESULT hr = S_OK;
do
{
CAutoLock lock(&m_csLock);
hr = ShutdownEventQueue();
if(FAILED(hr))
{
break;
}
hr = MFUnlockWorkQueue(m_dwDecodeWorkQueueID);
if(FAILED(hr))
{
break;
}
m_bShutdown = TRUE;
}while(false);
return hr;
}