IltmmTargetFormat::CreateTargetFormats Example for C
HRESULT CreateTargetFormats(IltmmCapture* pCapture, HWND hWnd)
{
IltmmTargetFormats* pformats = NULL;
IltmmTargetFormat* pformat = NULL;
IUnknown* pDICOMFilter;
VARIANT_BOOL vb;
HRESULT hr = IltmmCapture_get_TargetFormats (pCapture, &pformats);
if(FAILED(hr))
{
return hr;
}
hr = IltmmTargetFormats_Item(pformats, ltmmCapture_TargetFormat_DICOM, &pformat);
if(FAILED(hr))
{
IltmmTargetFormats_Release(pformats);
return hr;
}
IltmmTargetFormat_get_UseFilterCache (pformat, &vb);
hr = IltmmTargetFormat_put_UseFilterCache (pformat, VARIANT_TRUE);
if(FAILED(hr))
{
IltmmTargetFormat_Release(pformat);
IltmmTargetFormats_Release(pformats);
return hr;
}
/// get the DICOM filter for private use
hr = IltmmTargetFormat_GetCacheObject (pformat, ltmmTargetFormat_Object_Mux, &pDICOMFilter);
if(FAILED(hr))
{
IltmmTargetFormat_Release(pformat);
IltmmTargetFormats_Release(pformats);
return hr;
}
IltmmTargetFormat_HasCacheDialog (pformat, ltmmTargetFormat_Dlg_Mux, &vb);
if (vb == VARIANT_TRUE)
IltmmTargetFormat_ShowCacheDialog (pformat, ltmmTargetFormat_Dlg_Mux, (long)hWnd);
IltmmTargetFormat_Release(pformat);
IltmmTargetFormats_Release(pformats);
IUnknown_Release(pDICOMFilter);
return S_OK;
}