- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语音编程之SpeechSDK概述
语音编程之Speech SDK概述 if(hr == E_FAIL) { // 处理错误 } else { // 处理成功 } 只有在该方法只返回E_FAIL 来指示失败时,上面的测试才能正常工作。然而,该方法还可能返回一个E_NOTIMPL或 E_INVALIDARG之类的错误值。上面的代码将会将它们解释为成功,这将可能导致程序的失败。 如果需要关于方法运行结果的更详细的信息,必须测试每一个相关的HRESULT值。但经常只关心方法是成功的还是失败的。一种可靠的测试HRESULT类型值说明成功还是失败的方法是利用如下的宏来判断,这些宏定义在Winerror.h中。 1)宏SUCCEEDED返回TRUE作为成功码,返回FALSE作为失败码; 2)宏FAILED返回TRUE作为失败码,返回FALSE作为成功码; 可以使用宏FAILED来修改上面的代码段: // hr 是该方法返回的HRESULT类型值 if(FAILED(hr)) { // 处理错误 } else { // 处理成功 } 这段代码能合理地处理E_NOTIMPL和E_INVALIDARG之类的失败码。 大多数的COM方法返回结构化的HRESULT类型值,只有很少数量的方法使用HRESULT来返回简单的整数值,这类方法经常是成功的。如果将这类整数值传给宏SUCCESS,该宏将总是返回TRUE。常用的例子是IUnknown::Release方法,它减少一次对象的引用计数并返回当前的引用计数。将在管理对象的生命期一节中讨论引用计数的问题。 (4)指针地址 阅读一些COM方法的参考文档时,经常看到如下的说明: HRESULT CreateDevice( . . . IDirect3DDevice8 **ppReturnedDeviceInterface ); C或C++开发人员熟悉普通的指针,但是COM经常使用另外的间接层。这种间接的第二层用两个星号(**)跟着类型声明来表示。变量名一般使用“pp”作为前缀。在上面的例子中,参数ppReturnedDeviceInterface表示指向IDirect3DDevice8 接口的指针的地址。 与C++不同,不需要直接访问COM对象的方法,而必须获取指向方法的接口的指针。然后像调用指向C++方法的指针一样来调用方法。例如,使用如下的语法来调用方法IMyInterface::DoSomething method: IMyInterface *pMyIface; . . . pMyIface-DoSomething(...); 这样做的原因是我们并不直接创建接口指针,而是必须调用不同的方法(例如上述的CreateDevice)来创建接口指针。为了使用这种方法来获取接口指针,应声明一个指向需要的接口的指针变量,并将该指针变量的地址,即一个指针的地址,传递给该方法。当该方法返回时,该变量将指向你要求的接口,可以使用该指针来调用接口的任何方法。将在使用COM接口一节中更详细地讨论接口指针的问题。 2.创建COM对象 有多种方法可以创建COM对象。以下是在编程中最常用的两种方法。 1)直接法: 将对象的CLSID传给CoCreateInstance函数。该函数将创建对象的一个实例,并返回指向你所指定接口的指针。 2)间接法: 调用一个特殊的方法或函数来创建对象。这类方法创建对象并返回该对象的接口。使用这种方式来创建对象时,通常并不能指定需要返回的接口。 创建对象之前,必须调用CoInitialize函数来初始化COM。如果使用间接法来创建对象,对象的创建方法将自动完成COM初始化。如果使用CoCreateInstance来创建对象,则必须明确地调用CoInitialize。 当完成了所有的COM工作后,必须调用CoUninitialize 来卸载COM。如果调用了CoInitialize,则必须对应地调用一次CoUninitialize。一般地说,需要明确,初始化COM的应用程序在其启动过程中初始化COM,在其清除过程中卸载COM。 用CoCreateInstance 来创建一个COM对象的实例需要使用该对象的CLSID。如果其CLSID是公开的,可以在其参考手册或相应的头文件中找到。如果其CLSID不是公开的,则不能使用直接法来创建该对象。 CoCreateInstance函数有5个参数,一般可以按如下方式来设置其参数。 1)rclsid:将该参数设为需要创建的对象的CLSID。 2)pUnkOuter:将该参数设为NULL。只有在聚合对象时才需要使用该参数。参见关于聚合的讨论。 3)dwClsContext:将该参数设为CLSCTX_INPROC_S
您可能关注的文档
- 大学生创新认定申请表.doc
- 高等教育大众化背景下的高校就业.doc
- 一个学期在匆匆中结束了.doc
- 七年级2单元教案.doc
- 李成工作总结.doc
- 二年级奥数测试题2.doc
- 第4章命令总结 打印 .doc
- 天津某住宅建筑安装工程造价分析.doc
- 2010—2011学年第一学期八年级信息技术复习资料.doc
- 论律师辩论的技巧.doc
- 5.2 凝聚价值追求 同步课件 2025-2026学年度九年级上册 道德与法治 统编版.pptx
- 4.2 凝聚法治共识 教学课件 2025-2026学年度九年级上册 道德与法治 统编版.pptx
- 5.1 延续文化血脉(课件) 2025-2026学年度九年级上册 道德与法治 统编版.pptx
- 1.2走向共同富裕— 教案 2025-2026学年度九年级上册 道德与法治 统编版.docx
- 3.1生活在新型民主国家 课件 2025-2026学年度道德与法治九年级上册 统编版.pptx
- 2.1创新改变生活 同步课件 2025-2026学年度九年级上册 道德与法治 统编版.pptx
- 1.2走向共同富裕 (教案) 2025-2026学年度道德与法治 九年级上册 .docx
- 6.1 正视发展挑战 课件 2025-2026学年度九年级上册 道德与法治 统编版.pptx
- 5.1延续文化血脉 同步课件 2025-2026学年度九年级上册 道德与法治 统编版.pptx
- 1.2《走向共同富裕》教学设计 2025-2026学年度九年级上册 道德与法治 统编版.docx
文档评论(0)