过时功能的标准COM HRESULT是什么?

Mar*_*haw 3 c++ vb6 com

我正在研究一个VB6项目.有一些我想要废弃的方法.删除方法体后,想法是提出标准的COM错误,例如

Err.Raise E_NOTIMPL
Run Code Online (Sandbox Code Playgroud)

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

有任何想法吗?

Ben*_*Ben 5

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

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

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

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