On 11/14/19 7:18 PM, Jactry Zeng wrote:
+static void test_interfaces(void) +{ + ISpeechVoice *speech_voice; + IDispatch *dispatch; + IUnknown *unk; + HRESULT hr; + + hr = CoCreateInstance(&CLSID_SpVoice, NULL, CLSCTX_INPROC_SERVER, + &IID_ISpeechVoice, (void **)&speech_voice); + ok(hr == S_OK, "Failed to create ISpVoice interface: %#x.\n", hr); + EXPECT_REF(speech_voice, 1); + + hr = CoCreateInstance(&CLSID_SpVoice, NULL, CLSCTX_INPROC_SERVER, + &IID_IDispatch, (void **)&dispatch); + ok(hr == S_OK, "Failed to create IDispatch interface: %#x.\n", hr); + EXPECT_REF(dispatch, 1); + EXPECT_REF(speech_voice, 1); + IDispatch_Release(dispatch); + + hr = CoCreateInstance(&CLSID_SpVoice, NULL, CLSCTX_INPROC_SERVER, + &IID_IUnknown, (void **)&unk); + ok(hr == S_OK, "Failed to create IUnknown interface: %#x.\n", hr); + EXPECT_REF(unk, 1); + EXPECT_REF(speech_voice, 1); + IUnknown_Release(unk); + + ISpeechVoice_Release(speech_voice); +} What does this test? Especially refcount parts.