3,245
社区成员
发帖
与我相关
我的任务
分享
HRESULT CCameraCaptureImp::AutoFocus(void)
{
CCommon::PRINT(DBG_INF, TEXT("CCameraCaptureImp::AutoFocus()."));
HRESULT hRes = S_FALSE;
_ASSERT(NULL != m_pCapDev);
IAMCameraControl* pCamera = NULL;
// Obtain camera control
CHECK(m_pCapDev->QueryInterface(IID_IAMCameraControl, (void**)&pCamera));
CCommon::PRINT(DBG_INF, TEXT("CCameraCaptureImp::AutoFocus() Obtain Camera Control Completed."));
// Set auto focus
_ASSERT(NULL != pCamera);
CHECK(pCamera->Set(CameraControl_Focus, 0, CameraControl_Flags_Auto));
CCommon::PRINT(DBG_INF, TEXT("CCameraCaptureImp::AutoFocus() Set Auto Focus Completed."));
hRes = S_OK;
__CLEANUP__:
SAFE_RELEASE(pCamera);
CCommon::PRINT(DBG_INF, TEXT("CCameraCaptureImp::AutoFocus() Completed."));
return hRes;
}
[/quote]
如果directshow没提供接口,例如设备上有一个led灯,控制灯的部分在uvc扩展单元中,我又该怎么操作呢?
HRESULT CCameraCaptureImp::AutoFocus(void)
{
CCommon::PRINT(DBG_INF, TEXT("CCameraCaptureImp::AutoFocus()."));
HRESULT hRes = S_FALSE;
_ASSERT(NULL != m_pCapDev);
IAMCameraControl* pCamera = NULL;
// Obtain camera control
CHECK(m_pCapDev->QueryInterface(IID_IAMCameraControl, (void**)&pCamera));
CCommon::PRINT(DBG_INF, TEXT("CCameraCaptureImp::AutoFocus() Obtain Camera Control Completed."));
// Set auto focus
_ASSERT(NULL != pCamera);
CHECK(pCamera->Set(CameraControl_Focus, 0, CameraControl_Flags_Auto));
CCommon::PRINT(DBG_INF, TEXT("CCameraCaptureImp::AutoFocus() Set Auto Focus Completed."));
hRes = S_OK;
__CLEANUP__:
SAFE_RELEASE(pCamera);
CCommon::PRINT(DBG_INF, TEXT("CCameraCaptureImp::AutoFocus() Completed."));
return hRes;
}