HRESULT CreateTargetFormats_Example (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; }