IDispatch::Invoke DISPID_AMBIENT_DLCONTROL

本文详细介绍了如何通过实现IDispatch接口和DISPID_AMBIENT_DLCONTROL属性来定制浏览器控件的下载行为,包括图像、视频、背景音乐、脚本、Java小程序、ActiveX控件等的下载和显示控制。

 转自:http://topic.youkuaiyun.com/u/20091216/17/7381701a-53d5-46a4-9fd9-b6f47adf8066.html

 

浏览器控件给你它的下载,显示设置和执行的控制权。 为了要得到这些控制,你实现你的宿主的IDispatch接口,使得它处理DISPID_AMBIENT_DLCONTROL。当浏览器控件被实例化的时候,它将会以这一个ID调用你的IDispatch::Invoke。将pvarResult设置为下列的标识的一个位与的组合,指明你的配置。

DLCTL_DLIMAGES , DLCTL_VIDEOS 和 DLCTL_BGSOUNDS: 如果这些标识被设定,图像,视频和背景音乐将会被从服务器下载并且显示或播放,否则将不被下载和显示。
 
DLCTL_NO_SCRIPTS 和 DLCTL_NO_JAVA: 脚本和Java小程序将不被运行。 
DLCTL_NO_DLACTIVEXCTLS 和 DLCTL_NO_RUNACTIVEXCTLS: ActiveX 控件将不被下载或者运行。 
DLCTL_DOWNLOADONLY: 网页只将会被下载,不显示。 
DLCTL_NO_FRAMEDOWNLOAD:浏览器控件将会下载并且解析框架集页面,但是不会下载和解析框架集中单独的框架。 
DLCTL_RESYNCHRONIZE 和 DLCTL_PRAGMA_NO_CACHE: 这些标志导致Internet缓冲的刷新。通过 DLCTL_RESYNCHRONIZE,服务器将会被请求更新状态。如果服务器指出缓存信息是最新的,将会使用 缓存文件。通过DLCTL_PRAGMA_NO_CACHE,不管文件的更新状态如何,文件都会被从服务器重新下载。 
DLCTL_NO_BEHAVIORS: 行为不被下载并且在文件中被禁用。 
DLCTL_NO_METACHARSET_HTML: 忽略在META元素中指明的字符集。 
DLCTL_URL_ENCODING_DISABLE_UTF8 和 DLCTL_URL_ENCODING_ENABLE_UTF8: 这些标志的功能类似于IDocHostUIHandler::GetHostInfo中使用的DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8 和DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8标志。不同是只有在浏览器控件被初始化的时候,DOCHOSTUIFLAG标志才会被检查。这里的环境特性变化的下载标志在每当浏览器控件需要运行一个下载时被检查。 
DLCTL_NO_CLIENTPULL: 不运行客户端重定位页面操作(译者注:例如<meta http-equiv="refresh" content="30"> 的默认行为)。 
DLCTL_SILENT: 在下载期间没有用户界面显示。 
DLCTL_FORCEOFFLINE: 浏览器控件总是在脱机模式中操作。 
DLCTL_OFFLINEIFNOTCONNECTED 和 DLCTL_OFFLINE: 这些标志是相同的。如果不连接到英特网,浏览器控件将会在脱机模式中操作。
DISPID_AMBIENT_DLCONTROL和标志的数值是在mshtmdid.h被定义的。

最初,当对IDispatch::Invoke调用开始的时候, pvarResult参数指向的VARIANT是VT_EMPTY类型。 你必须为任何有效的设定设置它为VT_I4类型。你可以在VARIANT的lVal成员中存储标志数值。

大部份标志数值有否定的效果,也就是说,他们避免行为正常地发生。举例来说,如果你不自定义浏览器控件行为,那么通常脚本会被执行。 但是如果你设定DLCTL_NOSCRIPTS 标志,脚本将不会在控制的那个实例中运行。然而,三个标志— DLCTL_DLIMAGES , DLCTL_VIDEOS 和 DLCTL_BGSOUNDS的作用正好相反。你必须全部设置标志,使得浏览器控件以它的默认行为执行关于图像,视频和声音的处理。

下列示例代码使得一个浏览器控件实例下载并且显示图像和视频,但是不处理背景音乐,因为DLCTL_BGSOUNDS没有被明确地设定。浏览器控件显示的页上的脚本运行被禁用。

例子

C/C++ code
   
STDMETHODIMP CAtlBrCon::Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS * pDispParams, VARIANT * pvarResult, EXCEPINFO * pExcepInfo, UINT * puArgErr) { switch (dispidMember) { case DISPID_AMBIENT_DLCONTROL: pvarResult -> vt = VT_I4; pvarResult -> lVal = DLCTL_DLIMAGES | DLCTL_VIDEOS | DLCTL_NO_SCRIPTS; break ; default : return DISP_E_MEMBERNOTFOUND; } return S_OK; }
PS F:\程序员的日常\python\AI_Manager> & 'e:\python\python.exe' 'c:\Users\13636\.vscode\extensions\ms-python.debugpy-2025.14.1-win32-x64\bundled\libs\debugpy\launcher' '63298' '--' 'f:\程序员的日常\python\AI_Manager\Progress\app\text_to_speech.py' 14:27:06 DEBUG:comtypes:CoInitializeEx(None, 2) 14:27:06 INFO:comtypes.client._code_cache:Imported existing <module 'comtypes.gen' from 'e:\\python\\Lib\\site-packages\\comtypes\\gen\\__init__.py'> 14:27:06 INFO:comtypes.client._code_cache:Using writeable comtypes cache directory: 'e:\python\Lib\site-packages\comtypes\gen' 14:27:06 DEBUG:comtypes.client._create:SAPI.SPVoice -> {96749377-3391-11D2-9EE3-00C04F797396} 14:27:06 DEBUG:comtypes.client._create:CoCreateInstance({96749377-3391-11D2-9EE3-00C04F797396}, clsctx=None, interface=None) 14:27:06 DEBUG:comtypes.client._managing:GetBestInterface(<POINTER(IUnknown) ptr=0x275877d7b70 at 2758ac55450>) 14:27:06 DEBUG:comtypes.client._managing:Does implement IProvideClassInfo 14:27:06 DEBUG:comtypes.client._managing:Default interface is {269316D8-57BD-11D2-9EEE-00C04F797396} 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x275877d7bb0 at 2758b57ef50> 14:27:06 DEBUG:comtypes.client._generate:GetModule(TLIBATTR(GUID={C866CA3A-32F7-11D2-9602-00C04F8EE628}, Version=5.4, LCID=0, FLags=0x8)) 14:27:06 DEBUG:comtypes.client._managing:Implements default interface from typeinfo <class 'comtypes.gen._C866CA3A_32F7_11D2_9602_00C04F8EE628_0_5_4.ISpeechVoice'> 14:27:06 DEBUG:comtypes.client._managing:Final result is <POINTER(ISpeechVoice) ptr=0x275877d7bb0 at 2758b57efd0> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IProvideClassInfo) ptr=0x275877d7bd0 at 2758b57eb50> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeInfo) ptr=0x2758aab6ef8 at 2758b57ebd0> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeInfo) ptr=0x2758aab6f50 at 2758b57ed50> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeLib) ptr=0x275883694e0 at 2758b57ef50> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x275877d7b70 at 2758ac55450> 14:27:06 DEBUG:comtypes.client._events:<POINTER(ISpeechVoice) ptr=0x275877d7bb0 at 2758b57efd0> using sinkinterface from clsid <class 'comtypes.gen._C866CA3A_32F7_11D2_9602_00C04F8EE628_0_5_4._ISpeechVoiceEvents'> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IProvideClassInfo2) ptr=0x275877d7bd0 at 2758ac55450> 14:27:06 DEBUG:comtypes._vtbl:<comtypes.client._events.CreateEventReceiver.<locals>.Sink object at 0x000002758B16BB60>: _ISpeechVoiceEvents.VoiceChange not implemented 14:27:06 DEBUG:comtypes._vtbl:<comtypes.client._events.CreateEventReceiver.<locals>.Sink object at 0x000002758B16BB60>: _ISpeechVoiceEvents.Bookmark not implemented 14:27:06 DEBUG:comtypes._vtbl:<comtypes.client._events.CreateEventReceiver.<locals>.Sink object at 0x000002758B16BB60>: _ISpeechVoiceEvents.Sentence not implemented 14:27:06 DEBUG:comtypes._vtbl:<comtypes.client._events.CreateEventReceiver.<locals>.Sink object at 0x000002758B16BB60>: _ISpeechVoiceEvents.Phoneme not implemented 14:27:06 DEBUG:comtypes._vtbl:<comtypes.client._events.CreateEventReceiver.<locals>.Sink object at 0x000002758B16BB60>: _ISpeechVoiceEvents.Viseme not implemented 14:27:06 DEBUG:comtypes._vtbl:<comtypes.client._events.CreateEventReceiver.<locals>.Sink object at 0x000002758B16BB60>: _ISpeechVoiceEvents.AudioLevel not implemented 14:27:06 DEBUG:comtypes._vtbl:<comtypes.client._events.CreateEventReceiver.<locals>.Sink object at 0x000002758B16BB60>: _ISpeechVoiceEvents.EnginePrivate not implemented 14:27:06 DEBUG:comtypes.client._events:Start advise <class 'comtypes.gen._C866CA3A_32F7_11D2_9602_00C04F8EE628_0_5_4._ISpeechVoiceEvents'> 14:27:06 DEBUG:comtypes._comobject:<comtypes.client._events.CreateEventReceiver.<locals>.Sink object at 0x000002758B16BB60>.QueryInterface({A372ACD1-3BEF-4BBD-8FFB-CB3E2B416AF8}) -> S_OK 14:27:06 DEBUG:comtypes._comobject:1 active COM objects: Added <comtypes.client._events.CreateEventReceiver.<locals>.Sink object at 0x000002758B16BB60> 14:27:06 DEBUG:comtypes._comobject:<comtypes.client._events.CreateEventReceiver.<locals>.Sink object at 0x000002758B16BB60>.AddRef() -> 1 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IConnectionPointContainer) ptr=0x275877d7bd8 at 2758b2a5c50> 14:27:06 DEBUG:comtypes.client._managing:wrap_outparam(<POINTER(ISpeechObjectToken) ptr=0x275877d88d0 at 2758b2a5c50>) 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ISpeechObjectToken) ptr=0x275877d88d0 at 2758b2a5c50> 14:27:06 DEBUG:comtypes.client._managing:wrap_outparam(<POINTER(ISpeechObjectTokens) ptr=0x2758cadf550 at 2758b2a5c50>) 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758b7c3a20 at 2758b2a5a50> 14:27:06 DEBUG:comtypes.client._managing:wrap_outparam(<POINTER(IDispatch) ptr=0x2758b7c19e0 at 2758b2a56d0>) 14:27:06 DEBUG:comtypes.client._managing:GetBestInterface(<POINTER(IDispatch) ptr=0x2758b7c19e0 at 2758b2a56d0>) 14:27:06 DEBUG:comtypes.client._managing:Does NOT implement IProvideClassInfo, trying IProvideClassInfo2 14:27:06 DEBUG:comtypes.client._managing:Does NOT implement IProvideClassInfo/IProvideClassInfo2 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758aab7000 at 2758b2a6650> 14:27:06 DEBUG:comtypes.client._managing:Default interface is {C74A3ADC-B727-4500-A84A-B526721C8B8C} 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758b7c19e0 at 2758b5e82d0> 14:27:06 DEBUG:comtypes.client._generate:GetModule(TLIBATTR(GUID={C866CA3A-32F7-11D2-9602-00C04F8EE628}, Version=5.4, LCID=0, FLags=0x8)) 14:27:06 DEBUG:comtypes.client._managing:Implements default interface from typeinfo <class 'comtypes.gen._C866CA3A_32F7_11D2_9602_00C04F8EE628_0_5_4.ISpeechObjectToken'> 14:27:06 DEBUG:comtypes.client._managing:Final result is <POINTER(ISpeechObjectToken) ptr=0x2758b7c19e0 at 2758b5e82d0> 14:27:06 DEBUG:comtypes.client._managing:wrap_outparam(<POINTER(ISpeechObjectTokens) ptr=0x2758cadf7a0 at 2758b5e83d0>) 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758b7c48c0 at 2758b5e8450> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ISpeechObjectTokens) ptr=0x2758cadf7a0 at 2758b5e83d0> 14:27:06 DEBUG:comtypes.client._managing:wrap_outparam(<POINTER(IDispatch) ptr=0x2758b7c14d0 at 2758b5e8450>) 14:27:06 DEBUG:comtypes.client._managing:GetBestInterface(<POINTER(IDispatch) ptr=0x2758b7c14d0 at 2758b5e8450>) 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IDispatch) ptr=0x2758b7c19e0 at 2758b2a6450> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeInfo) ptr=0x2758aab7000 at 2758b2a5650> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeLib) ptr=0x275883694e0 at 2758b2a6150> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IDispatch) ptr=0x2758b7c19e0 at 2758b2a56d0> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IEnumVARIANT) ptr=0x2758b7c3a20 at 2758b2a5850> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ISpeechObjectTokens) ptr=0x2758cadf550 at 2758b2a5c50> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ISpeechObjectToken) ptr=0x2758b7c19e0 at 2758b5e82d0> 14:27:06 DEBUG:comtypes.client._managing:Does NOT implement IProvideClassInfo, trying IProvideClassInfo2 14:27:06 DEBUG:comtypes.client._managing:Does NOT implement IProvideClassInfo/IProvideClassInfo2 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758aab7000 at 2758b2a5c50> 14:27:06 DEBUG:comtypes.client._managing:Default interface is {C74A3ADC-B727-4500-A84A-B526721C8B8C} 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758b7c14d0 at 2758b2a56d0> 14:27:06 DEBUG:comtypes.client._generate:GetModule(TLIBATTR(GUID={C866CA3A-32F7-11D2-9602-00C04F8EE628}, Version=5.4, LCID=0, FLags=0x8)) 14:27:06 DEBUG:comtypes.client._managing:Implements default interface from typeinfo <class 'comtypes.gen._C866CA3A_32F7_11D2_9602_00C04F8EE628_0_5_4.ISpeechObjectToken'> 14:27:06 DEBUG:comtypes.client._managing:Final result is <POINTER(ISpeechObjectToken) ptr=0x2758b7c14d0 at 2758b2a6150> 14:27:06 DEBUG:comtypes.client._managing:wrap_outparam(<POINTER(IDispatch) ptr=0x2758b7c1c20 at 2758b2a5950>) 14:27:06 DEBUG:comtypes.client._managing:GetBestInterface(<POINTER(IDispatch) ptr=0x2758b7c1c20 at 2758b2a5950>) 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IDispatch) ptr=0x2758b7c14d0 at 2758b2a59d0> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeInfo) ptr=0x2758aab7000 at 2758b2a5850> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeLib) ptr=0x275883694e0 at 2758b2a56d0> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IDispatch) ptr=0x2758b7c14d0 at 2758b5e8450> 14:27:06 DEBUG:comtypes.client._managing:Does NOT implement IProvideClassInfo, trying IProvideClassInfo2 14:27:06 DEBUG:comtypes.client._managing:Does NOT implement IProvideClassInfo/IProvideClassInfo2 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758aab7000 at 2758b2a5a50> 14:27:06 DEBUG:comtypes.client._managing:Default interface is {C74A3ADC-B727-4500-A84A-B526721C8B8C} 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758b7c1c20 at 2758b57fa50> 14:27:06 DEBUG:comtypes.client._generate:GetModule(TLIBATTR(GUID={C866CA3A-32F7-11D2-9602-00C04F8EE628}, Version=5.4, LCID=0, FLags=0x8)) 14:27:06 DEBUG:comtypes.client._managing:Implements default interface from typeinfo <class 'comtypes.gen._C866CA3A_32F7_11D2_9602_00C04F8EE628_0_5_4.ISpeechObjectToken'> 14:27:06 DEBUG:comtypes.client._managing:Final result is <POINTER(ISpeechObjectToken) ptr=0x2758b7c1c20 at 2758b2a60d0> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ISpeechObjectToken) ptr=0x2758b7c14d0 at 2758b2a6150> 14:27:06 DEBUG:comtypes.client._managing:wrap_outparam(<POINTER(IDispatch) ptr=0x2758b7c15f0 at 2758b5e8450>) 14:27:06 DEBUG:comtypes.client._managing:GetBestInterface(<POINTER(IDispatch) ptr=0x2758b7c15f0 at 2758b5e8450>) 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IDispatch) ptr=0x2758b7c1c20 at 2758b2a56d0> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeInfo) ptr=0x2758aab7000 at 2758b2a5850> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeLib) ptr=0x275883694e0 at 2758b57fa50> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IDispatch) ptr=0x2758b7c1c20 at 2758b2a5950> 14:27:06 DEBUG:comtypes.client._managing:Does NOT implement IProvideClassInfo, trying IProvideClassInfo2 14:27:06 DEBUG:comtypes.client._managing:Does NOT implement IProvideClassInfo/IProvideClassInfo2 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758aab7000 at 2758b2a6550> 14:27:06 DEBUG:comtypes.client._managing:Default interface is {C74A3ADC-B727-4500-A84A-B526721C8B8C} 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758b7c15f0 at 2758b2a5850> 14:27:06 DEBUG:comtypes.client._generate:GetModule(TLIBATTR(GUID={C866CA3A-32F7-11D2-9602-00C04F8EE628}, Version=5.4, LCID=0, FLags=0x8)) 14:27:06 DEBUG:comtypes.client._managing:Implements default interface from typeinfo <class 'comtypes.gen._C866CA3A_32F7_11D2_9602_00C04F8EE628_0_5_4.ISpeechObjectToken'> 14:27:06 DEBUG:comtypes.client._managing:Final result is <POINTER(ISpeechObjectToken) ptr=0x2758b7c15f0 at 2758b2a5c50> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ISpeechObjectToken) ptr=0x2758b7c1c20 at 2758b2a60d0> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IDispatch) ptr=0x2758b7c15f0 at 2758b2a5650> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeInfo) ptr=0x2758aab7000 at 2758b2a5950> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeLib) ptr=0x275883694e0 at 2758b2a5850> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IDispatch) ptr=0x2758b7c15f0 at 2758b5e8450> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ISpeechObjectToken) ptr=0x2758b7c15f0 at 2758b2a5c50> 14:27:06 INFO:__main__:🔊 TTS 引擎初始化成功 14:27:06 DEBUG:__main__:🔊 TTS 工作线程运行中... 14:27:06 DEBUG:__main__:🎧 TTS 工作线程已启动 (daemon) 14:27:06 INFO:__main__:✅ TTS 非阻塞事件循环已启动 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IEnumVARIANT) ptr=0x2758b7c48c0 at 2758b5e8350> 14:27:06 DEBUG:__main__:📥 添加语音任务: 你好,我是AI助手。... 14:27:06 INFO:__main__:📢 正在播报: 你好,我是AI助手。... 14:27:06 DEBUG:comtypes.client._managing:wrap_outparam(<POINTER(ISpeechObjectToken) ptr=0x275877d88d0 at 2758b2a6650>) 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ISpeechObjectToken) ptr=0x275877d88d0 at 2758b2a6650> 14:27:06 DEBUG:comtypes.client._managing:wrap_outparam(<POINTER(ISpeechObjectTokens) ptr=0x2758cae5d80 at 2758b2a6550>) 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758b7c3ba0 at 2758b2a59d0> 14:27:06 DEBUG:comtypes.client._managing:wrap_outparam(<POINTER(IDispatch) ptr=0x2758b7c1e60 at 2758b2a56d0>) 14:27:06 DEBUG:comtypes.client._managing:GetBestInterface(<POINTER(IDispatch) ptr=0x2758b7c1e60 at 2758b2a56d0>) 14:27:06 DEBUG:comtypes.client._managing:Does NOT implement IProvideClassInfo, trying IProvideClassInfo2 14:27:06 DEBUG:comtypes.client._managing:Does NOT implement IProvideClassInfo/IProvideClassInfo2 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758aab7000 at 2758b2a6450> 14:27:06 DEBUG:comtypes.client._managing:Default interface is {C74A3ADC-B727-4500-A84A-B526721C8B8C} 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758b7c1e60 at 2758b5e84d0> 14:27:06 DEBUG:comtypes.client._generate:GetModule(TLIBATTR(GUID={C866CA3A-32F7-11D2-9602-00C04F8EE628}, Version=5.4, LCID=0, FLags=0x8)) 14:27:06 DEBUG:comtypes.client._managing:Implements default interface from typeinfo <class 'comtypes.gen._C866CA3A_32F7_11D2_9602_00C04F8EE628_0_5_4.ISpeechObjectToken'> 14:27:06 DEBUG:comtypes.client._managing:Final result is <POINTER(ISpeechObjectToken) ptr=0x2758b7c1e60 at 2758b5e82d0> 14:27:06 DEBUG:comtypes.client._managing:wrap_outparam(<POINTER(IDispatch) ptr=0x2758b7c14d0 at 2758b5e86d0>) 14:27:06 DEBUG:comtypes.client._managing:GetBestInterface(<POINTER(IDispatch) ptr=0x2758b7c14d0 at 2758b5e86d0>) 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IDispatch) ptr=0x2758b7c1e60 at 2758b2a60d0> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeInfo) ptr=0x2758aab7000 at 2758b5e8350> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeLib) ptr=0x275883694e0 at 2758b5e84d0> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IDispatch) ptr=0x2758b7c1e60 at 2758b2a56d0> 14:27:06 DEBUG:comtypes.client._managing:Does NOT implement IProvideClassInfo, trying IProvideClassInfo2 14:27:06 DEBUG:comtypes.client._managing:Does NOT implement IProvideClassInfo/IProvideClassInfo2 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758aab7000 at 2758b2a56d0> 14:27:06 DEBUG:comtypes.client._managing:Default interface is {C74A3ADC-B727-4500-A84A-B526721C8B8C} 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IUnknown) ptr=0x2758b7c14d0 at 2758b2a5650> 14:27:06 DEBUG:comtypes.client._generate:GetModule(TLIBATTR(GUID={C866CA3A-32F7-11D2-9602-00C04F8EE628}, Version=5.4, LCID=0, FLags=0x8)) 14:27:06 DEBUG:comtypes.client._managing:Implements default interface from typeinfo <class 'comtypes.gen._C866CA3A_32F7_11D2_9602_00C04F8EE628_0_5_4.ISpeechObjectToken'> 14:27:06 DEBUG:comtypes.client._managing:Final result is <POINTER(ISpeechObjectToken) ptr=0x2758b7c14d0 at 2758b2a5a50> 14:27:06 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ISpeechObjectToken) ptr=0x2758b7c1e60 at 2758b5e82d0> 14:27:09 DEBUG:__main__:🔚 TTS 工作线程退出 14:27:09 DEBUG:__main__:🛑 当前语音已停止 14:27:09 DEBUG:__main__:📥 添加语音任务: 这是第二次说话,应该能正常播放。... 14:27:09 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IDispatch) ptr=0x2758b7c14d0 at 2758b2a59d0> 14:27:09 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeInfo) ptr=0x2758aab7000 at 2758b2a6450> 14:27:09 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ITypeLib) ptr=0x275883694e0 at 2758b2a5650> 14:27:09 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IDispatch) ptr=0x2758b7c14d0 at 2758b5e86d0> 14:27:09 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(IEnumVARIANT) ptr=0x2758b7c3ba0 at 2758b2a6650> 14:27:09 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ISpeechObjectTokens) ptr=0x2758cae5d80 at 2758b2a6550> 14:27:09 DEBUG:comtypes._post_coinit.unknwn:Release <POINTER(ISpeechObjectToken) ptr=0x2758b7c14d0 at 2758b2a5a50> 14:27:12 DEBUG:__main__:📥 添加语音任务: 第三次测试,看看是不是还能响。... 14:27:18 INFO:__main__:🔇 开始关闭 TTS 引擎... 14:27:18 WARNING:__main__:⚠️ endLoop() 调用失败: run loop not started 14:27:18 DEBUG:comtypes._post_coinit.unknwn:Calling CoUninitialize() 14:27:18 DEBUG:comtypes._post_coinit.unknwn:CoUninitialize() done. Exception ignored in: <function _DeleteDummyThreadOnDel.__del__ at 0x0000027587F3F060> Traceback (most recent call last): File "e:\python\Lib\threading.py", line 1383, in __del__ TypeError: 'NoneType' object does not support the context manager protocol
最新发布
10-24
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值