Visual C++ 7.1Visual C++ 7.0Windows 2003Windows 2000Visual C++ 6.0Windows XPMFC中级开发Visual StudioWindowsC++
与 Shell Sound Events 集成






2.78/5 (9投票s)
2004年1月31日
1分钟阅读

29429

336
本文档描述了如何修改注册表中的条目,以便注册我们自己的音频事件。
引言
我希望为我的新应用程序注册自己的新音频事件(请参阅控制面板,声音),但我发现没有用于此目的的 API。至少,我没有找到它。因此,我不得不弄清楚应该修改注册表中的哪些内容。
使用代码
代码相当清晰,并且我已成功使用它。也支持 Unicode! 想法是存在一个类,它在注册表中创建有效的条目。 此外,该类将给定的条目与一些唯一的标识符关联起来,并允许在事件发生时播放所需的音频。
首先,必须在注册表中创建有效的条目。 使用 TSystemSoundMgr::CreateEntriesInRegistry()
来实现此目的。 注册后,我们应该调用 TSystemSoundMgr::PlaySoundOnEvent(UINT)
并传递事件标识符。
这个类本身不会播放声音。 因此,由程序员来调用 PlaySoundOnEvent
方法。
TSystemSoundMgr
还使用 CRegistryTools
。 现在我必须道歉,因为这个类肯定来自 CodeTools,我不记得作者是谁了。 我也可能对这段代码进行了一些修改(可能关于 Unicode 编译)。
历史
可以通过使用例如 ID 到字符串的映射来编写更客观的代码,以便在 TSystemSoundMgr
中,我们不必通过 ID 进行切换,而只需在映射中搜索 ID。 此外,方法实现也不一致,因为在一个地方,我使用 CRegistryTools
,而在另一个地方,我直接使用 RegistryAPI
。 无论如何,这是第一个版本,我期待您的评论 :)