我是 COM 编程的新手。我已经准备好一个 COM 对象(和关联的 IClassFactory),但我不太清楚如何注册生成的 DLL 以供其他程序使用。我也不清楚我需要携带多少 GUID。
我尝试注册的 COM 对象实现了 IAudioSessionEvents 接口(interface)。
我遇到过 DllRegisterServer 和 DllUnregisterServer 函数,但我没有找到任何关于它们用法的清晰演示。它们处理哪些键,如何调用它们,由什么以及何时调用等?
谢谢,
-凯文·蒙特罗斯
最佳答案
根据这篇文章,我不确定您是在实现还是使用支持 IAudioSessionEvents 的 DLL。如果您正在使用此 DLL,则可以使用注释行实用程序 regsvr32 注册该组件。注册使用:
regsvr32
注销:
regsvr32/u
regsvr32 应该在你的路径上,所以这个命令可以在任何目录下运行。
如果您要实现有问题的 DLL,则必须提供 DllRegisterServer 和 DllUnRegisterServer 函数的实现。这些函数必须为您的组件设置和清理注册表项。注册表项的目的是提供 ProgID,将其映射到 CLSID,并为组件支持的接口(interface)提供接口(interface) ID。例如,IAudioSessionEvent 的接口(interface) ID。如果您要实现 DLL,则必须提供代码来执行所有这些任务。
注意:这些函数由 regsvr32 调用以注册组件。
如果实际编写此代码非常不寻常,通常您会希望使用像 ATL 这样的框架,它会为您处理繁重的工作。如果您真的想从头开始了解 COM,那么至少编写一次此代码是一个很好的练习。
关于c++ - 注册 COM 接口(interface)的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/712691/