Com WMP Interface正在阻止WMP进行用户交互

Com WMP Interface正在阻止WMP进行用户交互,com,mfc,windows-media-player,wmp,Com,Mfc,Windows Media Player,Wmp,我的MFC程序远程WMP实例以捕获WMP事件,并使用IWMPCore,IWMPCore3,IWMPClaylicCollection,IWMPMMediaCollection使用COM与WMP交互。远程实例正在运行find,可以捕获事件,但当我开始获取所有歌曲的所有细节(几乎5100首歌曲)时,WMP停止响应,直到我的应用程序获取所有歌曲并释放上述所有实例。有人能帮我解决这个问题吗?如何解决这个问题?WMP ActiveX控件是一个STA COM对象,因此所有交互(方法调用)都通过实例化线程进行

我的MFC程序远程WMP实例以捕获WMP事件,并使用
IWMPCore
IWMPCore3
IWMPClaylicCollection
IWMPMMediaCollection
使用COM与WMP交互。远程实例正在运行find,可以捕获事件,但当我开始获取所有歌曲的所有细节(几乎5100首歌曲)时,WMP停止响应,直到我的应用程序获取所有歌曲并释放上述所有实例。有人能帮我解决这个问题吗?如何解决这个问题?

WMP ActiveX控件是一个STA COM对象,因此所有交互(方法调用)都通过实例化线程进行,在大多数情况下,实例化线程是UI线程。也就是说,无论您对接口做什么,调用都会在调用时阻塞GUI


您需要在活动的中间抽出窗口消息来打开UI(显示进度并让用户点击取消按钮),或者创建一个初始化为STA的工作线程,并使用WMP中的一个次要隐形实例来获取集合细节。这很有效