Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 枚举和使用wmp可视化工具_C++_Com_Winapi_Wmp_Visualizer - Fatal编程技术网

C++ 枚举和使用wmp可视化工具

C++ 枚举和使用wmp可视化工具,c++,com,winapi,wmp,visualizer,C++,Com,Winapi,Wmp,Visualizer,我想在我的应用程序中使用系统可用的windows media player可视化工具。显然,可视化工具向世界公开了一个界面。我的问题是如何枚举和创建系统上可用可视化工具的实例?可能这只是一个获取可视化工具cslid的过程,然后使用CoCreateInstance创建实例。然而,我不知道如何得到这些clsid的 谢谢 实现IWMPEffects的对象的CLSID存储为HKLM\SOFTWARE\Microsoft\MediaPlayer\objects\Effects的子项。我认为您的思路是对的,

我想在我的应用程序中使用系统可用的windows media player可视化工具。显然,可视化工具向世界公开了一个界面。我的问题是如何枚举和创建系统上可用可视化工具的实例?可能这只是一个获取可视化工具cslid的过程,然后使用CoCreateInstance创建实例。然而,我不知道如何得到这些clsid的


谢谢

实现
IWMPEffects
的对象的CLSID存储为
HKLM\SOFTWARE\Microsoft\MediaPlayer\objects\Effects
的子项。我认为您的思路是对的,信息肯定在注册表中。然而,我只找到了visualizer的一个参考,那就是“Viz插件”。我认为这个插件会在另一个地方查找已安装的可视化工具。我已经安装了一个驻留在“Pulsing.dll”中的viz。在regedit中快速搜索它会得到clsid,但我无法跟踪该clsid的来源!也许可以使用一些工具来查看windows media player在启动时从注册表中提取了什么?嗯,各种可视化工具的CLSID必须位于注册表中的某个位置,否则WMP应该枚举整个HKEY_类\u根\CLSID,这是不可行的!然而,我在答案中提供的关键是最符合逻辑的地方。。。如果我没记错的话,Windows Media Center也使用相同的可视化效果,而且它是一个.net应用程序,您可以使用Reflector;)我得到了它!使用sysinternals中的process monitor监视wmp读取的键,搜索我已知的clsid和bang!发现可视化工具存储在HKLM\SOFTWARE\Microsoft\MediaPlayer\Objects\Effects中(如果您编辑帖子以反映这一发现,我将其标记为解决方案;)做得好!当然,当你发现答案时,它看起来是如此合乎逻辑!我编辑了答案以反映正确的注册表项。