提一个有关语音朗读的问题?(com调用问题)低手问题

zhaoyao73 2001-08-10 07:05:55

利用MSTTS的类型库导入IVtxtAuto接口类,pIVTxtAuto为一对话框的成员指针


以下为我的调用:
if (CoInitialize(NULL)==S_OK)
{
const GUID IID_IVTxtAuto = {0xFF2C7A50, 0x78F9, 0x11CE,{ 0xB7, 0x62, 0x00, 0xAA, 0x00, 0x4C, 0xD6, 0x5C} };
const GUID CLSID_VTxtAuto = {0xFF2C7A52, 0x78F9, 0x11CE,{ 0xB7, 0x62, 0x00, 0xAA, 0x00, 0x4C, 0xD6, 0x5C} };
GUID CLSIDOFSPEECH;
CLSIDFromProgID(L"Speech.VoiceText.1",&CLSIDOFSPEECH);
HRESULT hr = CoCreateInstance(CLSIDOFSPEECH,NULL,
CLSCTX_LOCAL_SERVER,IID_IVTxtAuto,(LPVOID*)&pIVTxtAuto);
if (SUCCEEDED(hr))
{
this->bSoundOk=TRUE;
pIVTxtAuto->Register("","English Text");
pIVTxtAuto->SetEnabled(1);
pIVTxtAuto->SetSpeed(150);
pIVTxtAuto->Speak("Wait a little,I will read the ",128);
((CButton *)(GetDlgItem(IDC_SPEAK)))->EnableWindow(TRUE);
((CButton *)(GetDlgItem(IDC_SPEAK)))->SetCheck(1);
}
else
{
CoUninitialize();
this->bSoundOk=FALSE;
((CButton *)(GetDlgItem(IDC_SPEAK)))->SetCheck(0);
((CButton *)(GetDlgItem(IDC_SPEAK)))->EnableWindow(FALSE);
MessageBox("本机没有安装TTS引擎,因此无法朗诵!","警告:",MB_OK+MB_ICONEXCLAMATION );
}
}

每当调用 pIVTxtAuto->Register("","English Text");时总是出现异常,在运行时,程序错误,无法继续执行,

请问什么毛病?

另外,我用pIVTxtAuto->Release();为什么编译器说接口IVTxtAuto 没有此成员函数?
...全文
75 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
musicdancer 2001-08-11
  • 打赏
  • 举报
回复
{2398E321-5C6E-11D1-8C65-0060081841DE}
microsost voice text 1.0
systemroot\speech\Vtext.dll
zhaoyao73 2001-08-11
  • 打赏
  • 举报
回复
楼上是说mstts5.0版本?
musicdancer 2001-08-10
  • 打赏
  • 举报
回复
我做过一个短的,直接speak,呵呵.没register和enable.
使用新版的ITextToSpeech接口和_TextToSpeechEvents接口.
musicdancer 2001-08-10
  • 打赏
  • 举报
回复
_bstr_t("English Text")
_bstr_t("Wait a little,I will read the ")
试试.

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧