读书人

SAPI中SetOutput调用有关问题

发布时间: 2013-12-13 13:57:17 作者: rapoo

SAPI中SetOutput调用问题
SAPI的C接口调用。

代码如下


ISpStream *pWavStream;
ISpVoice *pVoice;
CoInitialize(NULL);
if( S_OK != CoCreateInstance(&CLSID_SpVoice,
NULL,
CLSCTX_ALL,
&IID_ISpVoice,
(void **)&pVoice)

)
{
apt_log(APT_LOG_MARK, APT_PRIO_DEBUG, "pVoice init failed");
}

if( S_OK != CoCreateInstance(&CLSID_SpStream,
NULL,
CLSCTX_ALL,
&IID_ISpStream,
(void **)&pWavStream)

)
{
apt_log(APT_LOG_MARK, APT_PRIO_DEBUG, "pWavStream init failed");
}

hr =pVoice->lpVtbl->SetOutput(pVoice,pWavStream,TRUE);



SetOutput调用的返回码是0x80045001。
找不到对应的错误原因,这样调用有问题吗?
pWavStream这个参数用法是否正确?
[解决办法]
直接从MSDN上查找答案吧,参考http://msdn.microsoft.com/en-us/library/ms720410(v=vs.85).aspx

引用:
SAPI的C接口调用。

代码如下

ISpStream *pWavStream;
ISpVoice *pVoice;
CoInitialize(NULL);
if( S_OK != CoCreateInstance(&CLSID_SpVoice,
NULL,
CLSCTX_ALL,
&IID_ISpVoice,
(void **)&pVoice)

)
{
apt_log(APT_LOG_MARK, APT_PRIO_DEBUG, "pVoice init failed");
}

if( S_OK != CoCreateInstance(&CLSID_SpStream,
NULL,
CLSCTX_ALL,
&IID_ISpStream,
(void **)&pWavStream)

)
{
apt_log(APT_LOG_MARK, APT_PRIO_DEBUG, "pWavStream init failed");
}

hr =pVoice->lpVtbl->SetOutput(pVoice,pWavStream,TRUE);



SetOutput调用的返回码是0x80045001。
找不到对应的错误原因,这样调用有问题吗?
pWavStream这个参数用法是否正确?

读书人网 >C语言

热点推荐