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