HRESULT CreateTargetFormats(IltmmCapture* pCapture) { IltmmTargetFormats* pformats = NULL; IltmmTargetFormat* pformat = NULL; IUnknown* pDICOMFilter; VARIANT_BOOL vb; // get the target formats collection HRESULT hr = pCapture->get_TargetFormats(&pformats); if(FAILED(hr)) return hr; // get the DICOM target format object hr = pformats->Item(ltmmCapture_TargetFormat_DICOM, &pformat); if(FAILED(hr)) { // release the formats collection object pformats->Release(); return hr; } // get the UseFilterCache setting for the format pformat->get_UseFilterCache(&vb); // not set it to true hr = pformat->put_UseFilterCache(VARIANT_TRUE); if(FAILED(hr)) { // release the format and collection objects pformat->Release(); pformats->Release(); return hr; } /// get the multiplexer object for this format hr = pformat->GetCacheObject(ltmmTargetFormat_Object_Mux, &pDICOMFilter); if(FAILED(hr)) { // release the format and collection objects pformat->Release(); pformats->Release(); return hr; } // check to see if the format has a multiplexer dialog for settings pformat->HasCacheDialog(ltmmTargetFormat_Dlg_Mux, &vb); // if so, display it if (vb == VARIANT_TRUE) pformat->ShowCacheDialog(ltmmTargetFormat_Dlg_Mux, (long)NULL); // release the objects pformat->Release(); pformats->Release(); pDICOMFilter->Release(); return S_OK; }