我正在研究一个VB6项目.有一些我想要废弃的方法.删除方法体后,想法是提出标准的COM错误,例如
Err.Raise E_NOTIMPL
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我使用标准的"方法未实现"错误,但这不是我想要返回的正确消息.
有任何想法吗?
如果这些方法仍然有效,但已弃用,请将它们保留,并在IDL中将它们标记为隐藏和不可浏览,并在帮助字符串中添加适当的注释.这将它们隐藏在开发人员之外.
如果它们不再起作用,那么理论上你需要一个新的CLSID,因为你违反了合同.
如果它们不再工作,但没有客户端实际使用过它们,那么你可以使用E_NOTIMPL - 这是合适的.(还要将它们标记为隐藏并添加帮助字符串解释.)
但请注意,如果调用者正在调用该方法,那么无论是返回E_NOTIMPL还是创建新的clsid并使它们重新编译,它们都会被破坏.