3

我正在做一个 VB6 项目。我想让一些方法过时。删除方法体后,想法是引发标准 COM 错误,例如

Err.Raise E_NOTIMPL

在这种情况下,我使用的是标准的“方法未实现”错误,但这并不是我想要返回的正确消息。

有任何想法吗?

4

1 回答 1

5

如果这些方法仍然有效,但已被弃用,请将它们保留,并在 IDL 中将它们标记为隐藏和不可浏览,并在帮助字符串中添加适当的注释。这对开发人员隐藏了它们。

如果它们不再起作用,那么理论上你需要一个新的 CLSID,因为你已经违反了合同。

如果它们不再工作,但没有客户实际使用它们,那么您可以使用 E_NOTIMPL - 这将是合适的。(也将它们标记为隐藏并添加一个帮助字符串解释。)

但是请注意,如果调用者正在调用该方法,那么无论您返回 E_NOTIMPL 还是创建新的 clsid 并重新编译它们,它们都会被破坏。

于 2012-06-21T16:00:37.750 回答