这可能是一个菜鸟 COM 问题,但在谷歌上搜索会引发比提供答案更多的问题:
对本地 COM 实例使用“operator new”而不是 CoCreateInstance 是否安全?
我做了什么:
我通过使用公共继承实现了 IOperationsProgressDialog 接口 http://msdn.microsoft.com/en-us/library/windows/desktop/bb775368(v=vs.85).aspx ,从而也实现了 IUnknown 接口。
我通过“new RecyclerProgressCallback”创建了一个实例,并将其放入 COM-Ptr 中进行生命周期管理。“RecyclerProgressCallback”是我的派生类的名称。
我在 IFileOperation::SetProgressDialog http://msdn.microsoft.com/en-us/library/windows/desktop/bb775803(v=vs.85).aspx中使用这个实例
摘要:我的方法“似乎”有效,但我不相信它,围绕 COM 对象创建的令人不安的信息太多,不能仅依赖于可观察的行为。
是否存在任何微妙的风险、谬误或其他问题?谢谢!