R��mi Bernon (@rbernon) commented about dlls/windows.media.speech/tests/speech.c:
if (hr == S_OK) {
ISpeechSynthesizerOptions *options;
hr = ISpeechSynthesizer2_get_Options(synthesizer2, &options);
todo_wine ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
if (hr == S_OK)
{
ISpeechSynthesizerOptions3 *options3;
check_interface(options, &IID_IAgileObject, TRUE);
check_optional_interface(options, &IID_ISpeechSynthesizerOptions2, TRUE); /* Requires Win10 >= 1709 */
hr = ISpeechSynthesizerOptions_QueryInterface(options, &IID_ISpeechSynthesizerOptions3, (void **)&options3);
Any reason you're not using `check_optional_interface` there too?