windows自带语音合成服务,CoCreateInstance函数返回REGDB_E_CLASSNOTREG。

我使用vs2017下载的 window 10 SDK 自带的SAPI库。CoCreateInstance函数会根据CLSID的值到注册表中寻找对应的DLL文件,但在注册表中查询不到我在VS中追踪GUID打印出来的项值{96749377-3391-11d2-9EE3-00C04F797396},如果要自己在注册表中增加这个项,那么在InProcServer路径下对应的DLL文件是哪个呢?
#include
#include
#pragma comment(lib,"SAPI.lib")
int main()
{
SetConsoleOutputCP(936);
ISpVoice pVoice = NULL;
::CoInitialize(NULL);
if (FAILED(::CoInitialize(NULL))) MessageBox(NULL, TEXT("CoInitialize Error!"), TEXT(""), MB_OK);
HRESULT hr = CoCreateInstance(CLSID_SpVoice,NULL, CLSCTX_ALL, IID_ISpVoice,(void *
)&pVoice);
if (hr == REGDB_E_CLASSNOTREG) {
printf_s("%x\n", hr);
}
if (SUCCEEDED(hr)) {
MessageBox(NULL,TEXT("CoInitialize Error!"), TEXT(""), MB_OK);
pVoice->SetVolume((USHORT)100); //设置音量,范围是 0 -100
pVoice->SetRate(0); //设置速度,范围是 -10 - 10
hr = pVoice->Speak(L"Hello World", 0, NULL);
pVoice->Release();
pVoice = NULL;
}
::CoUninitialize();
}

https://zhidao.baidu.com/question/438666160167348804.html