检测COM对象是否已注册或实例化(iTunes)

时间:2009-10-15 15:34:17

标签: windows com itunes

我在Windows上使用iTunes COM API。我想管理实例化iTunes对象(必须启动iTunes本身)时发生的巨大延迟。我希望有办法确定以下内容:

  • 如果给定的CLSID在系统上注册(以编程方式)
  • 如果已创建给定CLSID的实例

使用这些,我可以提供有用的反馈,例如“iTunes未安装”或“请等待iTunes启动时 - 这需要一些时间”。

2 个答案:

答案 0 :(得分:0)

  1. 创建iTunes COM对象,如果失败,则表示未安装iTunes且该功能应该非常快。
  2. 在创建iTunes对象之前创建其他线程让线程在某个事件上等待,一旦创建了iTunes对象就表明该事件。
  3. 在线程中,如果在3秒钟内没有单独选择事件,则显示“请稍候”,然后再次等待此事件。
  4. 这或多或少是你应该做的流程。

答案 1 :(得分:0)

确定给定CLSID的直接方式是在没有CoCreating的情况下注册,而是在注册表中检查HKCR\ReadableName\CLSID。这也是Windows从中获取信息的地方。