// This function does the following: // 1) Sets all filters to LEAD Default filters // 2) Then resets all preferred filters to NULL, or does not use any preferred filter. // 3) Then sets the LEAD H264 Decoder (3.0) as the LEAD H264 Preferred Decompressor using its Friendly Name // 4) Gets the preferred H.264 Decompressor display name void TestSetPreferredFilter(IltmmConvert *pConvert) { HRESULT hr = S_OK; BSTR bstr = NULL; // Set all filters to LEAD Default filters bstr = SysAllocString(ltmmFilter_LEADDefault); hr = pConvert->SetPreferredFilter(ltmmConvert_PreferredFilter_Generic, bstr); // free the bstr SysFreeString(bstr); // Reset all the preferred filters to NULL, or don't use any preferred filter. bstr = SysAllocString(ltmmFilter_DontCare); hr = pConvert->SetPreferredFilter(ltmmConvert_PreferredFilter_Generic, bstr); // free the bstr SysFreeString(bstr); // Set the H.264 Decompressor to the LEAD H264 Decoder (3.0), using the Friendly Name bstr = SysAllocString(L"LEAD H264 Decoder (3.0)"); hr = pConvert->SetPreferredFilter(ltmmConvert_PreferredFilter_H264Decompressor, bstr); // free the bstr SysFreeString(bstr); // Get the preferred H.264 Decompressor bstr = NULL; hr = pConvert->GetPreferredFilter(ltmmConvert_PreferredFilter_H264Decompressor, &bstr); // check that the preferred filter is the LEAD H264 decoder if(bstr != NULL && !_wcsicmp(bstr, ltmmFilter_LEAD_H264Decompressor)) MessageBox(NULL, TEXT("The preferred filter was set properly!"), TEXT("SUCCESS"), MB_OK); else MessageBox(NULL, TEXT("The preferred filter was not set properly!"), TEXT("FAILURE"), MB_OK); // free the bstr SysFreeString(bstr); }