最近开始学习COM。在 COM 中,函数的返回类型应该是 HRESULT。已阅读有关IUnknown 函数的HRESULT问题GetLastError(),但为什么,AddRef()并Release()有返回类型ULONG?
我想出了AddRef()(几乎)总是从 调用的答案QueryInterface(),而客户不应该调用它。而对于Release(),它的返回值永远不会被检查。
虽然我可以与 - 因为AddRef()- 客户可能会遇到他不得不称之为的情况来争论我自己的答案。并且由于客户可以访问该功能,客户不会调用它的保证是什么。
for Release()- 同样,用户可以检查它的返回类型,因为他可以
请说清楚。
也像 --> 它的约定是为 COM 相关函数设置 HRESULT 返回类型,而不是强制 --> 如果这是真的,它将停止我大脑中的混乱。