sapi: Implement ISpeechVoice::Speak.

This commit is contained in:
Shaun Ren 2024-02-16 14:28:42 -05:00 committed by Alexandre Julliard
parent afac7d7e3f
commit 5243f2e82c
2 changed files with 13 additions and 2 deletions

View file

@ -431,6 +431,7 @@ static void test_spvoice(void)
ULONG stream_num;
DWORD regid;
DWORD start, duration;
ISpeechVoice *speech_voice;
HRESULT hr;
if (waveOutGetNumDevs() == 0) {
@ -681,6 +682,14 @@ static void test_spvoice(void)
ok(hr == S_OK, "got %#lx.\n", hr);
ok(duration < 300, "took %lu ms.\n", duration);
hr = ISpVoice_QueryInterface(voice, &IID_ISpeechVoice, (void **)&speech_voice);
ok(hr == S_OK, "got %#lx.\n", hr);
hr = ISpeechVoice_Speak(speech_voice, NULL, SVSFPurgeBeforeSpeak, NULL);
ok(hr == S_OK, "got %#lx.\n", hr);
ISpeechVoice_Release(speech_voice);
done:
reset_engine_params(&test_engine);
ISpVoice_Release(voice);

View file

@ -357,9 +357,11 @@ static HRESULT WINAPI speech_voice_get_SynchronousSpeakTimeout(ISpeechVoice *ifa
static HRESULT WINAPI speech_voice_Speak(ISpeechVoice *iface, BSTR text, SpeechVoiceSpeakFlags flags, LONG *number)
{
FIXME("(%p, %s, %#x, %p): stub.\n", iface, debugstr_w(text), flags, number);
struct speech_voice *This = impl_from_ISpeechVoice(iface);
return E_NOTIMPL;
TRACE("(%p, %s, %#x, %p).\n", iface, debugstr_w(text), flags, number);
return ISpVoice_Speak(&This->ISpVoice_iface, text, flags, (ULONG *)number);
}
static HRESULT WINAPI speech_voice_SpeakStream(ISpeechVoice *iface, ISpeechBaseStream *stream,